# 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: rabbitmq: host: 127.0.0.1 port: 25672 username: skins password: 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