first commit
This commit is contained in:
@@ -0,0 +1,201 @@
|
||||
# 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
|
||||
|
||||
Reference in New Issue
Block a user