如何更新GitLab.com CI作业中使用的Docker镜像
你可以通过以下几种方式解决这个问题:
- 强制GitLab Runner每次拉取最新镜像
在你的.gitlab-ci.yml配置中,给对应任务的镜像配置增加pull_policy: always参数,强制runner每次执行任务时都重新从镜像仓库拉取最新版本的镜像,避免使用本地缓存的旧镜像。如果第三方镜像仓库已经更新了版本,这个配置可以直接解决问题。 - 自行构建自定义CI镜像
如果edbizarro/gitlab-ci-pipeline-php镜像确实长期没有更新,你可以参考该镜像的Dockerfile内容,基于官方最新的php:8.0镜像自行构建包含你所需CI依赖(如Composer、常用PHP扩展、Git等工具)的自定义镜像,将构建好的镜像推送到自己的容器镜像仓库后,在CI配置中替换为你自己的镜像地址即可,后续镜像版本更新完全由你自己控制,不会受第三方维护节奏影响。 - CI运行时临时升级PHP版本
如果不想维护自定义镜像,可以在CI任务的before_script阶段添加PHP版本升级命令,通过包管理工具将容器内的PHP版本升级到满足依赖要求的版本即可,这个方案不需要改动镜像,适合临时过渡使用,但会增加每次CI任务的运行时长。
内容的提问来源于stack exchange,提问作者Synchro
相关产品推荐
相关产品推荐

