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

202 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Skins 业务后端 — 详细部署文档
> 适用项目:chengdu-backend(基于若依 RuoYi 开发,Spring Boot 4.0.3 + JDK 21)
> 适用场景:本地开发、测试环境、生产环境
> 项目根 README 见 [README.md](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](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):
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](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