202 lines
5.5 KiB
Markdown
202 lines
5.5 KiB
Markdown
# 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
|
||
|