fix(ci): 移除registry cache-to写入,避免ACR tag不可变导致构建卡死 #678
Reference in New Issue
Block a user
Delete Branch "fix/remove-acr-cache-to"
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?
问题
ACR镜像仓库设置为tag不可变(Immutable),导致
--cache-to type=registry写缓存时因tag已存在而失败,触发构建重试浪费大量时间。修复
--cache-to type=registry写入操作--cache-from type=registry只读作为兜底缓存源(首次构建或本地缓存失效时仍可从ACR拉取缓存层)影响
验证:等待CI跑完确认3个Docker build耗时恢复正常。
📊 审查概览
❌ 需修改的问题(严重)
--cache-to "type=registry,..."参数,但保留了--cache-from "type=registry,..."。在 CI/CD 流水线中,构建环境通常是临时的,本地缓存(LOCAL_CACHE_DIR)在任务结束后会被销毁。如果不将构建产生的新缓存层推送到 Registry,后续的构建任务将无法利用本次构建产生的缓存,只能拉取旧的缓存数据。这会导致缓存命中率随时间推移急剧下降,构建时间变长,严重违背了使用缓存加速构建的初衷。--cache-to "type=registry,ref=${CACHE_REF},mode=max,ignore-error=true"参数。如果确实不需要 Registry 缓存,请同时移除--cache-from type=registry,否则将持续拉取无效的旧缓存。💡 改进建议(一般)
无
✅ 良好实践
无
✅ 格式检查通过 | ❌ 逻辑审查需修改 | ⚠️ 建议关注性能
🤖 由 AI 代码审查机器人自动生成 | 2026-07-21 13:34:05 | 模型:
🚀 预览环境已部署
CI全绿,自动审批通过。
CI全绿,自动审批通过。
🗑️ 预览环境已清理
PR #678 已关闭或合并,对应的预览环境已被清理。