Files
henan-backend/docs/DEPLOYMENT.md
T
2026-09-21 19:21:35 +08:00

5.5 KiB
Raw Blame History

Skins 业务后端 — 详细部署文档

适用项目:chengdu-backend(基于若依 RuoYi 开发,Spring Boot 4.0.3 + JDK 21) 适用场景:本地开发、测试环境、生产环境 项目根 README 见 README.md,本文为补充的详细部署手册

1. 部署架构总览

  • 后端单进程:ruoyi-admin.jar,监听28081
  • 基础设施:MySQL 8.x、Redis、RabbitMQ(参考 docker/docker-compose.yml)
  • 前端:ruoyi-ui(Vue2 经典管理端),promo-ui2(Vue3 主播后台),cocos前端

2. 环境准备

2.1 必备软件

JDK 21(项目使用 /root/jdk-21.0.10) 必须为 JDK 21 Maven 3.6.x(/root/apache-maven-3.6.3)

2.2 安装示例

JDK 21

cd /root

上传 jdk-21.x.tar.gz 到 /root

tar -xzf jdk-21.0.10_linux-x64_bin.tar.gz mv jdk-21.0.10 /root/jdk-21.0.10

Maven

cd /root tar -xzf apache-maven-3.6.3-bin.tar.gz

配置全局环境变量(在脚本内配置,见 ry.sh / package.sh)

cat >> /etc/profile <<'EOF' export JAVA_HOME=/root/jdk-21.0.10 export MAVEN_HOME=/root/apache-maven-3.6.3 export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH EOF source /etc/profile

验证

java -version mvn -v

3. 基础设施部署(MySQL / Redis / RabbitMQ)

3.1 使用仓库自带 docker-compose

仓库 docker/ 目录下已提供文件,采用 compose override 模式,通过 deploy.sh 自动选择镜像源和资源规格。

bash cd chengdu-backend/docker/compose

自动检测环境并启动(默认:国内镜像 + 自动检测 CPU 规格)

./deploy.sh up -d

开发环境

ENV=dev ./deploy.sh up -d

海外镜像源(如国内镜像不可用)

PROXY=overseas ./deploy.sh up -d

停止 / 删除

./deploy.sh stop ./deploy.sh down

容器常用操作:

./deploy.sh up -d # 启动 ./deploy.sh stop # 停止

3.2 首次部署:数据卷迁移

如果之前使用旧版 docker-compose(自动命名卷),需要迁移数据到 external 卷:

bash cd docker/compose bash migrate-mysql-volume.sh

4. 后端配置yml说明(Spring Profile)

入口配置文件:ruoyi-admin/src/main/resources/application.yml

4.1 Profile 文件

| Profile | 文件
| dev | application-dev.yml
| pro | application-pro.yml

4.2 生产关键配置(节选自 application-pro.yml)

yaml ruoyi: profile: /www/static # 上传文件存储目录 demoEnabled: true

spring: datasource: druid: master: url: jdbc:mysql://127.0.0.1:23306/chengdu?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: chengdu password: <数据库密码> data: redis: host: 127.0.0.1 port: 26379 password: <Redis 密码> rabbitmq: host: 127.0.0.1 port: 25672 username: skins password: <RabbitMQ 密码> virtual-host: /skins

token: secret: <强随机 32 位以上字符串> # JWT 密钥,必须修改 expireTime: 1440 # 分钟

4.3 项目文件上传目录

ruoyi.profile 指上传文件物理路径(默认 /www/static),创建并赋权(宝塔直接手动创建):

5. 编译与打包

5.1 服务器编译(脚本封装)

仓库根目录提供 package.sh:

package.sh 主要工作:

  1. 检查 mvn 和 java 命令是否可用。
  2. git pull 拉取最新代码。
  3. 调用 mvn clean package -Dmaven.test.skip=true。
  4. 将 ruoyi-admin/target/ruoyi-admin.jar 复制到仓库根目录 ./ruoyi-admin.jar,供 ry.sh 启动。

6. 一键部署脚本(宝塔推荐)

仓库根 publish.sh 封装「备份旧jar → 打包 → 重启」完整流程:

bash执行流程 cd /www/chengdu_app/chengdu-backend ./publish.sh

执行解释步骤:

  1. 备份旧 jar:cp ruoyi-admin.jar ruoyi-admin.jar.bak
  2. 打包:调用 ./package.sh(含 git pull + mvn package)
  3. 重启:./ry.sh stop && ./ry.sh start

ry.sh 会自动检测 CPU 核数选择 JVM 规格(16c32g: 10g堆 / 32c64g: 22g堆),使用 G1GC 并开启 GC 日志。可通过 JVM_PROFILE 环境变量覆盖规格,SPRING_PROFILE 覆盖 Spring Profile(默认 pro)。

7. 前端工程部署

7.1 ruoyi-ui(Vue2 经典管理端)

bash cd ruoyi-ui npm install
npm run build:prod # 将dist目录下文件打包

将 dist压缩包 上传到/www/wwwroot/静态目录

7.2 promo-ui2(Vue3 推广后台)

bash cd promo-ui2 pnpm install pnpm build:pro # 将dist目录下文件打包

将 dist压缩包 上传到/www/wwwroot/静态目录

8. 宝塔端口放行

| 端口 | 用途 | 80 / 443 | Nginx | 28081 | 后端 Spring Boot | 23306 | MySQL | 26379 | Redis | 25672 / 35672 | RabbitMQ AMQP

执行流程 宝塔 → 安全 → 放行 80/443/26379/23306/28081 等等所需要的端口号,其余端口可在宝塔安全设置添加和修改。

9. 日志与监控

9.1 日志文件

| 路径 | 内容 | | nohup.out | 启动 + 控制台日志(由 ry.sh 输出) | | /www/ruoyi/logs/sys-info.log | 系统日志(logback,按天滚动,保留60天) | | /www/ruoyi/logs/sys-error.log | 错误日志(logback,按天滚动,保留60天) | | /www/ruoyi/logs/gc.log | GC 日志(滚动 10 个文件,每个 50M) |

实时跟踪: bash脚本 tail -f nohup.out