fix(ci): deploy脚本直接使用完整registry镜像名,修复watchtower自动更新 #611
Reference in New Issue
Block a user
Delete Branch "fix/deploy-registry-image-names"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
问题
Deploy脚本pull完整registry路径的镜像后,re-tag成本地短名(如 xiaoxia-saas-api:xxx),然后用短名启动容器。
导致watchtower监控容器时,去 docker.io(默认registry)查找短名镜像,找不到就不会自动更新,watchtower形同虚设。
修复
Staging Deploy
docker tagre-tag步骤xiaoxia-registry.cn-hangzhou.cr.aliyuncs.com/xiaoxiakeji/xiaoxia-saas-*)Production Deploy
scripts/ci_production_deploy.sh(可维护、可review)影响
🚀 预览环境已部署
CI全绿,自动审批通过。
CI全绿,自动审批通过。
代码审查结果 - PR #611
⚠️ 问题(3个需要修改)
scripts/ci_production_deploy.sh 第357行 & scripts/ci_staging_deploy.sh 第250行:Shell脚本语法错误,行尾多了一个双引号。
echo "All images pulled."",末尾多余的引号会导致Shell解析失败(Syntax Error),脚本将在此处中断退出,导致部署失败。.gitea/workflows/ci-pipeline.yml 第819行:远程命令注入安全风险。
"IMAGE_TAG='${GITHUB_REF_NAME}' ACR_USERNAME='${ACR_USERNAME}' ACR_PASSWORD='${ACR_PASSWORD}' sh"。如果ACR_PASSWORD或其他变量中包含单引号('),将破坏Shell命令结构,导致远程代码执行(RCE)或命令解析失败。scripts/ci_production_deploy.sh 第443行:日志输出端口与实际映射端口不一致。
echo "Web: http://127.0.0.1:3001",但在第426行的docker run命令中,端口映射为-p 127.0.0.1:3002:80。💡 建议(1个可选)
LEGACY_VOLUME的赋值使用了未加引号的变量${LEGACY_ASSETS_DIR}。虽然当前路径是固定的系统路径,但为了脚本健壮性,建议写成LEGACY_VOLUME="-v \"${LEGACY_ASSETS_DIR}:...:ro""。✅ 格式检查通过 | ❌ 逻辑审查需修改 | ⚠️ 建议关注性能
🤖 由 AI 代码审查机器人自动生成 | 2026-07-19 20:16:06 | 模型:
🗑️ 预览环境已清理
PR #611 已关闭或合并,对应的预览环境已被清理。