2.6 KiB
2.6 KiB
生产上线部署脚本实施记录
保存路径确认
- 本次为生产上线部署脚本改动,实施记录保存到
docs/reports/implementation/,符合仓库实施文档目录规范。
修改目标
- 生成一个可放在上线环境执行的部署脚本。
- 上线环境目录下已有
backend/、frontend/和一个上线压缩包。 - 上线压缩包根层包含
ruoyi-admin.jar和dist.zip。 - 执行脚本后先备份
backend/与frontend/旧文件,再解压上线包并部署到对应目录,最后调用start-java-backend-prod.sh重启后端并输出日志。
修改内容
- 新增
deploy/deploy-release-prod.sh- 默认按脚本同级目录解析
backend/、frontend/、start-java-backend-prod.sh和上线压缩包。 - 使用
/bin/sh写法,避免依赖 Bash 进程替换等服务器环境不一定支持的语法。 - 支持显式传入上线压缩包路径:
./deploy-release-prod.sh /path/to/ccdi_YYYYMMDD.zip。 - 未传入压缩包时,自动使用脚本同级目录下唯一的
.zip文件,并排除dist.zip。 - 部署前将
backend/和frontend/当前内容备份到backups/YYYYMMDDHHMMSS/。 - 解压上线包后校验根层必须存在
ruoyi-admin.jar和dist.zip。 - 解压
dist.zip后校验必须存在dist/index.html。 - 后端部署为覆盖
backend/ruoyi-admin.jar。 - 前端部署为清空
frontend/后复制dist/内文件到frontend/。 - 部署完成后执行
bash start-java-backend-prod.sh restart,由现有启动脚本完成后端重启并持续输出后端日志。
- 默认按脚本同级目录解析
使用方式
生产环境目录结构:
上线目录/
├── deploy-release-prod.sh
├── start-java-backend-prod.sh
├── backend/
├── frontend/
└── ccdi_YYYYMMDD.zip
执行:
./deploy-release-prod.sh
或显式指定压缩包:
./deploy-release-prod.sh /path/to/ccdi_YYYYMMDD.zip
验证记录
- 执行
sh -n deploy/deploy-release-prod.sh- 结果:通过
- 说明:脚本 Shell 语法正确。
- 执行
sh deploy/deploy-release-prod.sh --help- 结果:通过
- 说明:帮助信息正常输出。
- 使用
/tmp构造最小上线目录、旧backend/、旧frontend/、上线压缩包和假的start-java-backend-prod.sh后执行部署脚本- 结果:通过
- 说明:已验证旧文件备份、新 Jar 覆盖、前端
dist/文件部署,以及最终调用启动脚本restart。
影响范围
- 仅新增生产上线部署脚本与本实施记录。
- 不修改 Java 业务代码、前端业务代码、数据库脚本和现有后端启动脚本。