GitLab CI Runner 拉取过时镜像问题排查求助
问题修复方案
核心原因
GitLab Runner默认对非latest标签的镜像优先使用节点本地缓存,未配置强制拉取策略时,即使远端Registry的同标签镜像已经更新,Runner也不会主动拉取新镜像。
无需访问Runner/K8s配置的可操作方案
所有配置均在你仓库的.gitlab-ci.yml中修改即可生效,优先级高于Runner全局默认配置:
- 单作业指定拉取策略:在对应镜像过时的作业中显式声明
pull_policy: alwaysyour-target-job: image: name: 你的Registry镜像地址:对应标签 pull_policy: always - 全仓库统一生效:如果需要所有作业都强制拉取镜像,可以在全局变量段添加配置
variables: DOCKER_PULL_POLICY: always - 验证方案:配置提交后查看对应作业的
Preparing environment阶段日志,可明确看到镜像拉取动作和拉取结果,确认是否已经拉取到最新镜像。
额外排查方向
如果配置后仍然拉取旧镜像,可以先确认镜像推送环节是否正常:
- 同标签镜像推送时是否成功覆盖了Registry中的旧镜像,是否出现推送报错
- 镜像构建完成后,是否正确将新版本推送到了GitLab内置Registry对应地址
内容的提问来源于stack exchange,提问作者V3sp
相关产品推荐
相关产品推荐

