使用Docker部署Ruoyi-Cloud

这篇文章是在上篇在CentOS中使用Docker安装Java开发环境的基础上创作的,首先需要针对若依项目的要求修改nacos和nginx的配置文件,新安装运行jar包的容器jdk8和对象存储容器minio,然后将前后端项目打包部署,最后进行测试。

1.修改nacos的配置文件

1.在mysql中创建数据库ry-cloud并导入数据脚本ry_20231130.sql和quartz.sql
2.在mysql中创建数据库ry-config并导入数据脚本ry_config_20231204.sql
3.修改/home/docker/nacos/conf/application.properties文件里的数据库名称,将其从nacos改成ry-config
4.重启nacos容器
docker restart nacos

2.修改nginx的配置文件

1.修改/home/docker/nginx/conf/conf.d/default.conf里的内容为
server {
    listen       80;
    server_name  192.168.113.10;

    location / {
        root   /usr/share/nginx/html/ruoyi-ui;
        try_files $uri $uri/ /index.html;
        index  index.html index.htm;
    }

    location /prod-api/{
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://192.168.113.10:8080/;
    }

    # 避免actuator暴露
    if ($uri ~ "/actuator") {
        return 403;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

2.重启nginx容器
docker restart nginx

3.使用docker安装MinIO

1.创建挂载目录
mkdir -p /home/docker/minio/{config,data}

2.使用命令创建容器
docker run -d --name minio -p 9000:9000 -p 9001:9001 --privileged=true -e "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=admin123" -v /home/docker/minio/data:/data -v /home/docker/minio/config:/root/.minio minio/minio server --console-address ":9000" --address ":9001" /data

3.在192.168.75.10:9000打开minio的后台管理界面创建名为若依的桶,并设置桶的权限只读

4.部署前端项目

1.进入到ruoyi-ui所在目录

2.安装依赖,会生成node_modules目录
npm install --registry=https://registry.npmmirror.com

3.打包项目,会生成dist目录
npm run build:prod

4.将生成的dist目录复制到/home/docker/nginx/html下,并且将dist目录改名为ruoyi-ui

5.准备后端项目

1.使用idea将项目打开,使用maven安装依赖

2.使用全局搜索,修改后端项目里的localhost或者127.0.0.1为虚拟机ip

3.在ruoyi-gateway模块中修改bootstrap.yml配置文件里的sentinel控制台的端口为8858

4.修改数据库ry-cloud下表sys_menu中的三个控制台的ip和端口

5.在nacos中修改各个微服务的配置文件,主要修改MySQL的密码,Redis的密码

6.在nacos中修改ruoyi-file-dev.yml这个配置文件里的minio相关配置,以及将@Primary注解从LocalSysFileServiceImpl类上放到MinioSysFileServiceImpl类上

7使用Maven将项目打包,然后将所有jar包放到/home/docker/jdk8/jars下

8在/home/docker/jdk8/jars下创建startup.sh文件,内容如下

#!/bin/bash
JAR_DIR="/home/jdk8/jars"
for jar in "$JAR_DIR"/*.jar
do
    if [ -f "$jar" ]; then
        nohup java -Dfile.encoding=UTF-8 -jar "$jar" >/dev/null 2>&1 &
        echo "正在运行: $jar"
    fi
done
echo "所有JAR包已在后台启动。"
tail -f /dev/null

6.使用docker安装jdk8

1.启动容器jdk8(挂载目录已经在上一步中准备好了)
docker run -itd -p 8080:8080 -p 9100:9100 -v /home/docker/jdk8/jars:/home/jdk8/jars --name jdk8 amazoncorretto:8u402

2.进入容器中
docker exec -it jdk8 bash

3.进入初始化文件所在目录并运行初始化文件
cd /home/jdk8/jars
sh startup.sh
### 使用 Docker 部署 RuoYi Cloud Plus #### 准备工作 为了成功部署 RuoYi Cloud Plus 项目,需先准备必要的环境和资源。确保已安装并配置好 DockerDocker Compose 工具。 #### 获取源码与依赖项 通过 Git 命令克隆仓库来获取最新版本的 RuoYi Cloud Plus 源代码[^2]: ```bash git clone https://github.com/dromara/RuoYi-Cloud.git cd RuoYi-Cloud ``` #### 构建镜像 利用 Maven 或 Gradle 来打包应用程序,并基于官方 Java 镜像创建自定义的应用程序容器镜像。此过程通常涉及修改 `pom.xml` 文件或编写专门用于构建 Dockerfile 的脚本文件[^3]。 对于 Spring Boot 应用来说,可以采用如下方式生成可执行 JAR 文件以及对应的 Dockerfile: ```Dockerfile FROM openjdk:8-jdk-alpine VOLUME /tmp ARG JAR_FILE=target/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] ``` 接着,在命令行中输入以下指令完成镜像制作: ```bash mvn clean package -DskipTests=true docker build -t ruoyi-cloud-plus . ``` #### 启动基础服务 启动 MySQL、Nginx Web Server、Redis 缓存服务器及 MinIO 对象存储等基础设施组件。这些服务可以通过单个 docker-compose.yml 文件统一管理[^1]: ```yaml version: '3' services: mysql: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: rootpassword volumes: - ./mysql-data:/var/lib/mysql nginx-web: image: nginx:latest ports: - "80:80" depends_on: - backend-service redis: image: redis:alpine minio: image: minio/minio command: server /data environment: MINIO_ACCESS_KEY: minioadmin MINIO_SECRET_KEY: minioadmin volumes: - ./minio-data:/data ``` 使用下面这条命令一次性拉起所有关联的服务实例: ```bash docker-compose up -d mysql nginx-web redis minio ``` #### 运行应用服务 最后一步就是让之前编译好的业务逻辑模块作为独立进程加入到现有的集群当中去。假设已经按照上述方法得到了名为 `ruoyi-cloud-plus` 的私有化制品,则只需简单地追加一行新的 service 定义即可实现自动化扩展能力: ```yaml backend-service: image: ruoyi-cloud-plus ports: - "8080:8080" depends_on: - mysql - redis environment: SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/dbname?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 SPRING_REDIS_HOST: redis ``` 再次调用相同的组合操作语句使变更生效: ```bash docker-compose up --build -d ``` 这样便完成了整个系统的搭建流程,现在应该可以在浏览器里访问 http://localhost 地址查看前端页面了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值