You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitLab CI中从私有Artifactory拉取基础镜像并解决未授权报错

问题1:镜像路径写法是否正确
  • 你的写法存在潜在错误,标准Artifactory Docker镜像拉取路径格式为 {仓库域名}/{镜像名}:{标签},你当前路径中包含/artifactory/路由前缀,需要先本地验证路径有效性:
    本地执行docker pull artifactory.bayer.com/artifactory/aie-docker-dev-mydockerrepo:latest,如果能正常拉取说明路径符合你的Artifactory代理配置,否则需要调整路径,常见的正确路径格式有两种:
    • 端口模式:artifactory.bayer.com:${Docker仓库端口}/{镜像名}:{标签}
    • 子域名模式:${仓库名}.artifactory.bayer.com/{镜像名}:{标签}
问题2:基础镜像拉取的登录配置位置

GitLab Runner拉取CI基础镜像的操作发生在job初始化阶段,早于before_script的执行时机,你写在before_script中的docker login仅作用于job运行时的镜像操作,不会对基础镜像拉取生效,可按以下两种方式配置:

方式1:配置DOCKER_AUTH_CONFIG项目变量(优先推荐)

你当前的CI配置中已经声明了该变量,只需正确赋值即可:

  1. 本地执行docker login artifactory.bayer.com,输入Artifactory用户名和Access Token完成登录
  2. 打开本地Docker配置文件~/.docker/config.json,复制全部文件内容
  3. 进入GitLab项目的「设置→CI/CD→变量」页面,新增名为DOCKER_AUTH_CONFIG的变量,值为刚才复制的config.json内容,根据你的分支规则调整是否开启「受保护」「掩码」选项即可
    配置完成后Runner会自动读取该凭证拉取私有基础镜像。

方式2:直接在GitLab Runner配置中添加凭证

如果你有权限操作Runner所在服务器,可直接修改Runner的config.toml配置文件,在对应Runner的[[runners]]段落添加配置:

[runners.docker]
  [[runners.docker.auth_config]]
    address = "artifactory.bayer.com"
    username = "${Artifactory用户名}"
    password = "${Artifactory Access Token}"

修改完成后重启Runner即可生效,该方式不需要每个项目单独配置凭证。

内容的提问来源于stack exchange,提问作者Laster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 08:03:03