pomotodo 后端发布 SOP(本地打包 + 上传服务器)
从 数字资产清单 拆出,记录 pomotodo 发布流程细节。
适用仓库:/Users/liwenye/IdeaProjects/pomotodo@gitee
目标服务器:root@120.78.83.144
一、发布前运行时变量检查(必须通过)
1 | ssh root@120.78.83.144 'for k in JWT_SECRET DB_USER DB_PASSWORD REDIS_PASSWORD; do grep -Eq "^${k}=.+" /usr/local/pomotodo/.runtime.env || { echo "MISSING:${k}"; exit 1; }; done; if grep -q "^MANAGEMENT_HEALTH_MAIL_ENABLED=false" /usr/local/pomotodo/.runtime.env || (grep -Eq "^MAIL_USERNAME=.+" /usr/local/pomotodo/.runtime.env && grep -Eq "^MAIL_PASSWORD=.+" /usr/local/pomotodo/.runtime.env && grep -Eq "^MAIL_PORT=.+" /usr/local/pomotodo/.runtime.env); then echo "runtime env check passed"; else echo "mail health config missing"; exit 1; fi' |
二、本地打包并自动上传部署(首选)
1 | cd /Users/liwenye/IdeaProjects/pomotodo@gitee |
说明:
- 该脚本流程为:本地
mvn clean package-> 上传 jar 到服务器/tmp/-> 远程备份/停服/替换/启服 -> 健康检查。 - 默认为了适配当前项目配置,跳测参数走
-DskipUTs=true。 - 当前部署产物路径:
pomotodo-app/target/pomotodo-1.0-SNAPSHOT.jar。
三、常用变体命令
1 | cd /Users/liwenye/IdeaProjects/pomotodo@gitee |
四、发布后验证(必须)
1 | ssh root@120.78.83.144 "curl -s -o /tmp/health.json -w '%{http_code}' http://127.0.0.1:18080/actuator/health && echo && cat /tmp/health.json" |
期望结果:HTTP 状态码 200,且返回健康 JSON。
五、健康检查失败时快速排查
1 | ssh root@120.78.83.144 "grep -nE 'DataSource health|Redis health|Mail health|Access denied|NOAUTH|AuthenticationFailedException' /usr/local/pomotodo/app.log | tail -n 80" |
六、备用方案(仅当本地部署不可用)
1 | ssh root@120.78.83.144 "cd /root && ./build.sh" |
备注:
- 服务器只有 2 GB 内存,默认不建议在服务器直接 Maven 构建。
- 详细故障处理文档:
/Users/liwenye/IdeaProjects/pomotodo@gitee/docs/ops/2026-02-25-release-runtime-env-runbook.md