Ubuntu环境docker部署若依RuoYi-Cloud【保姆级】

Ubuntu环境docker部署若依RuoYi-Cloud【保姆级】



前言

通过开源若依RuoYi-Cloud微服务项目(前后端),结合其说明文档,学习下docker部署和微服务。


一、环境和基础安装

1. Ubuntu版本

# 查看
cat /proc/version

在这里插入图片描述

2. docker安装

# 安装
apt install docker.io
# 查看安装位置
sudo docker info | grep "Docker Root Dir"

3. docker-compose安装

由于git网址访问不到,采用离线的方式下载,把下载的安装包丢到/usr/local/bin/docker-compose目录下(随便指定个目录就好),然后执行下面:

# 设置权限
chmod +x /usr/bin/docker-compose
# 建立链接
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 查看安装位置
which docker-compose

4. docker和linux的一些常用操作命令

# 守护式方式创建容器
docker run -di --name 容器名称 镜像名称:标签
# 登录守护式容器方式
docker exec -it 容器名称|容器ID /bin/bash
# 停止/启动容器
docker stop 容器名称|容器ID
docker start 容器名称|容器ID
# 移除容器
docker rm 容器名称|容器ID
# 移除镜像
docker rmi 镜像名称|镜像ID
# 拷贝容器文件
docker cp 需要拷贝的文件或目录 容器名称:容器目录

# 查看正在运行/所有/停止的容器
docker ps
docker ps -a
docker ps -f status=exited
# 查看已安装的镜像
docker image ls
# 查看容器启动日志
docker logs -f -t  容器名称或者容器id
docker logs -t --tail=50 容器名称或容器id
docker logs -t --since="2022-09-22T09:10:00" 容器名称或容器id
docker logs -t --since="2022-09-22T09:10:00" --until "2022-09-22T09:20:00" 容器名称或容器id

# docker-compose前台启动
docker-compose up
# docker-compose后台启动
docker-compose up -d

二、若依微服务项目配置修改和打包

代码拉下来后,建议先在本地跑通整个项目,再修改一些配置打包丢上docker部署。现在需要在原来的配置文档上进行一部分修改。

1. mysql

修改路径docker/mysql/dockerfile,当前使用的是8.0版本的,可以根据需要进行修改:

在这里插入图片描述
修改当前路径下的文件docker/docker-compose.yml,修改其中的ruoyi-mysql模块:
在这里插入图片描述

2. nacos

路径docker/nacos/conf/application.properties, 检查下路径和密码:
在这里插入图片描述

3. nginx

nginx配置没有什么要修改的,但是需要把前端build的dist文件夹放到对应的路径下:
在这里插入图片描述

4. redis

当前redis版本采用的是5.0的,由于Ubuntu版本环境等问题,换其他高版本的redis,在创建容器的时候报错了:
在这里插入图片描述

5. ruoyi

修改路径ruoyi-auth/src/main/resources/bootstrap.yml的ruoyi-auth配置,把地址替换成模块名,后面运行时docker能访问到:

在这里插入图片描述
同理,ruoyi-gateway模块和ruoyi-system模块下也需要进行调整:
在这里插入图片描述
在这里插入图片描述

6. 打包项目

项目配置修改后需要进行打包:
在这里插入图片描述
打好的jar包都在每个模块的target底下,比较分散,使用脚本copy.sh集中copy到docker各级目录下:
在这里插入图片描述
最后,把整个docker文件夹copy到虚拟机上:
在这里插入图片描述

三、docker容器创建和应用部署

在linux环境下部署,通过docker-compose管理各容器,下面依次通过启动ruoyi-mysql、ruoyi-redis、ruoyi-nacos、ruoyi-gateway、ruoyi-nginx、ruoyi-auth、ruoyi-modules-system各容器部署若依应用。

1. ruoyi-mysql

进入到docker目录下,这个目录下的文件我们在本地已经修改好:
在这里插入图片描述
创建mysql容器和启动:

docker-compose -f docker-compose.yml up -d ruoyi-mysql

mysql8.0版本后可能会报Public Key Retrieval is not allowed错误,可能原因是mysql8.0之后默认的认证方式都改为caching_sha2_password了,而我们服务并没有配置sha2相关的插件,可以按照下面操作进行验证和更改:

# 启动容器
docker start ruoyi-mysql
# 进去
docker exec -it ruoyi-mysql /bin/bash
# 登录mysql
mysql -u root -p
# 查看现有的数据库
show databases;
# 选择mysql
use mysql
# 查看plugin设置,如果usr为ROOT的都为caching_sha2_password则需要进行切换
select host, user, plugin from user;
# 修改认证方式,从caching_sha2_password改成mysql_native_password
本地:ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY '密码';
远程:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
# 最后退出重启容器

mysql启动成功后,需要执行mysql目录下两个sql文件:
在这里插入图片描述

# 启动容器
docker start ruoyi-mysql
# 将项目内的SQL文件拷贝到mysql容器内部的home下的tmp文件内
sudo docker cp /home/docker/mysql/db/ efa1bb73a7ff:/home/tmp
# 进入容器
docker exec -it ruoyi-mysql /bin/bash
# 登录mysql
mysql -u root -p
# 分别执行两个文件
source /home/tmp/ry_config_20220929.sql
source /home/tmp/ry_20230706.sql
# 最后可以切换数据库查看对应的表
show databases;
show tables;

2. ruoyi-redis

创建redis容器和启动:

docker-compose -f docker-compose.yml up -d ruoyi-redis

版本太高,和其他环境不适配可能会报Fatal: Can’t initialize Background Jobs. Error message: Operation not permitted的错误,需要指定5.0的版本。

3. ruoyi-nacos

创建nacos容器和启动:

docker-compose -f docker-compose.yml up -d ruoyi-nacos

启动报load jdbc.properties error错误,需要检查下mysql里面数据库sql有没有执行成功。

4. 其他容器

创建ruoyi-gateway、ruoyi-nginx、ruoyi-auth、ruoyi-modules-system容器和启动:

docker-compose -f docker-compose.yml up -d ruoyi-gateway ruoyi-nginx ruoyi-auth ruoyi-modules-system

建议每创建一个容器,就看下他的运行状态docker ps,如果查不到他正在运行,说明运行失败了,需要逐个看日志进行分析,看docker-compose.yml的依赖关系进行排查。

5. 部署成功

成功后界面正常的打开:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值