从上面官网的介绍中,可以看到若依是一套提供了权限管理、代码生成的框架;之前一直使用的springboot ,最近也是因为业务需求,开始用springcloud 。本地运行的,只要在本地启动了nacos ,大致上是没什么问题,但是我部署上服务器,就遇见ruoyi-auth无法注册到 nacos服务中,各种尝试之后,终于可以,接下来就是我操作的步骤;这里的docker-compose 文件是使用的
https://gitcode.net/hjue/ruoyi-cloud-docker/ 多鱼的夏天
中docker 文件夹的内容,但是由于直接使用这个代码,执行sh deploy.sh modules 会一直报java版本的错。也结合了官网的docker文件
文件目录是这样的
下面来介绍具体的目录
准备工作
1、准备一台服务器,我使用的服务器是4核8G的,跑了所有的组件以及自己的业务部分
2、服务器选择centos,在服务器上安装jdk,(切记不要只安装jdk,其他的都不要安装),我安装的是jdk11,命令如下
yum install -y java-11-openjdk
3、安装docker
yum install -y yum-utilsyum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo安装yum install -y docker-ce启动dockersystemctl start docker#查看服务是否自动启动(是:enabled | 否:disabled)systemctl list-unit-files|grep docker.service #设置开机启动:如不是enabled可以运行如下命令设置自启动systemctl enable docker#重新加载服务配置systemctl daemon-reload #如果希望不进行自启动,运行如下命令设置systemctl disable docker#重新加载服务配置systemctl daemon-reload
4、安装docker-compose
pip3 install --upgrade pippip3 install docker-compose
如何验证版本,可以使用
docker versiondocker-compose version
修改docker 文件夹的内容
这里主要是设置 mysql 的密码、导入的sql文件、加入新的业务模块
设置nacos的数据库 以及mysql的账号密码
在copy.h 中设置copy 的sql 和 业务部分的jar
复制一个这样的代码
echo "begin copy ruoyi-modules-gen "cp ../ruoyi-modules/ruoyi-gen/target/ruoyi-modules-gen.jar ./ruoyi/modules/gen/jar
然后修改为自己业务部分的名称
修改deploy.h
在port()中添加业务部分的端口,将9300 换成定义的业务端口
firewall-cmd --add-port=9300/tcp --permanent
在modules 中加入自己的业务模块,在后面追加模块名
modules(){docker-compose up -d ruoyi-nginx ruoyi-gateway ruoyi-auth ruoyi-modules-system}
如果你的新的业务模块名是。ruoyi-modules-business,就将modules 中的内容修改为
modules(){docker-compose up -d ruoyi-nginx ruoyi-gateway ruoyi-auth ruoyi-modules-system ruoyi-modules-business}
在ruoyi ——modules 加入新的业务模块,复制modules下的任意一个文件夹,修改其中的dockerfile
# 基础镜像FROM openjdk:8-jre# authorMAINTAINER ruoyi# 挂载目录VOLUME /home/ruoyi# 创建目录RUN mkdir -p /home/ruoyi# 指定路径WORKDIR /home/ruoyi# 复制jar文件到路径COPY ./jar/ruoyi-modules-system.jar /home/ruoyi/ruoyi-modules-system.jar# 这里的system 换成自己的业务名# 启动系统服务ENTRYPOINT ["java","-jar","ruoyi-modules-system.jar"]# 这里的system 换成自己的业务名
修改docker-compose 文件
找到mysql ,将 MYSQL_DATABASE 换成自己定义的数据库名称,对应的是ruoyi-cloud 数据库
复制下面的内容,为新的模块配置
ruoyi-modules-job: container_name: ruoyi-modules-job build: context: ./ruoyi/modules/job dockerfile: dockerfile ports: - "9203:9203" env_file: - ./env/ruoyi-service.env depends_on: - ruoyi-redis - ruoyi-mysql - ruoyi-nacos
job部分换成自己的业务名,端口部分换掉
在sql文件夹中 放入自己定义的数据库名称
如果你没有将ruoyi的数据库改成自己的数据库名称,那么这一步是没有必要的,如果有,那么只要保证里面放入的数据库名称 和图中的一致,但是如果你是直接复制ry-config数据库的话,那在文件中,将ry-config 修改自己的数据库名称
DROP DATABASE IF EXISTS `layman_config`;CREATE DATABASE `layman_config` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;USE `layman_config`;
接下来就是最重要的部分,找到java 代码部分的所有bootstrap.yml中图中的代码部分
将server-addr部分换成服务器的地址,不能使用127.0.0.1 (就是这里会造成服务无法在nacos中注册)
打包
生成jar
点击maven 中的install ,生成所有所有jar
执行sh copy.sh
在idea 中的终端,输入sh copy.sh 将文件copy到docker 文件中
将docker 拷贝到服务器上,按照步骤来
在docker 文件中打开终端,执行 sh deploy.sh base
安装成功之后 ,进入nacos 管理页面
修改配置页面中的 redis地址,也不能使用localhost,而是将localhost 换成ruoyi-redis
在ruoyi-system-dev 中数据库也改成对应数据库的
然后再回到终端中,执行 sh deploy.sh modules 就可以成功了。
下面把初版本中的docker文件打包,可以根据这个最初版本进行修改
docker文件下载