Files
loan-pricing/doc/implementation-report-2026-04-01-production-one-click-deploy-backend.md

35 lines
1.7 KiB
Markdown
Raw Normal View History

2026-04-01 10:32:57 +08:00
# 生产一键部署脚本后端实施记录
## 修改内容
- 新增生产一键部署脚本 `bin/prod/deploy_from_package.sh`
- 新增部署脚本自测文件 `bin/prod/deploy_from_package_test.sh`
- 脚本内固定 `JAVA_BIN="/home/webapp/env/java/bin/java"`
- 新增脚本同目录唯一发布 zip 校验、包内唯一 `jar` 校验
- 新增旧版后端 `jar` 时间戳备份规则
- 新增后端 PID 文件、托管进程标记、停止旧进程、启动新进程和端口监听校验逻辑
## 实现说明
- 新脚本执行目录固定为脚本所在目录,要求同目录存在:
- `backend/`
- `frontend/`
- 1 个发布 zip
- 后端目标文件固定落到 `backend/ruoyi-admin.jar`
- 旧版后端 `jar` 通过 `ruoyi-admin.jar.<时间戳>.bak` 方式原地备份
- 启动时附加 `-Dloan.pricing.home=<脚本目录>`,用于识别当前脚本托管进程
- PID 文件固定写入 `backend/backend.pid`
- 后端日志固定写入 `backend/backend-console.log`
- 端口监听检测优先使用 `ss`,当前环境没有 `ss` 时改为使用 `lsof` 完成同一条校验
## 验证结果
- 已执行 `sh -n bin/prod/deploy_from_package.sh`,语法校验通过
- 已执行 `sh bin/prod/deploy_from_package_test.sh`
- 自测覆盖以下场景:
- 正常部署场景:
- 旧版 `jar` 被重命名为时间戳备份文件
- 新版 `jar` 落到 `backend/ruoyi-admin.jar`
- 后端 PID 文件和日志文件生成成功
- 假后端进程启动成功并监听测试端口
- 异常场景:
- 脚本同目录存在多个发布 zip 时,脚本按预期失败并输出错误信息
- 自测使用临时目录和临时假 `java` 进程,测试结束后已自动清理对应进程和目录