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

GitLab CI中无法将Jib生成的Docker镜像推送到ECR

解决GitLab CI中Jib推送镜像到ECR的401授权问题

问题背景

本地执行mvn clean install -DskipTests -Pdocker可正常构建并推送镜像到ECR(依赖amazon-ecr-credential-helper管理凭据),但GitLab CI环境中执行相同命令时触发401 Unauthorized错误,手动添加-Djib.to.auth.username/-Djib.to.auth.password参数也无效,需基于GitLab存储的凭据完成推送。

核心原因

ECR不支持直接用AWS访问密钥作为镜像推送的用户名/密码,必须使用临时授权Token(用户名固定为AWS)进行认证,这是你之前参数配置无效的关键原因。

解决方案

方案1:利用Jib内置的AWS凭据自动获取(推荐)

Jib插件原生支持AWS ECR的凭据自动发现,只需在GitLab CI中配置AWS环境变量即可:

  1. 在GitLab项目的Settings > CI/CD > Variables中添加以下变量(勾选「Mask variable」保护敏感信息):
    • AWS_ACCESS_KEY_ID:你的AWS访问密钥ID
    • AWS_SECRET_ACCESS_KEY:你的AWS秘密访问密钥
    • AWS_DEFAULT_REGION:ECR仓库所在区域(如eu-west-1)
  2. 更新.gitlab-ci.yml配置,无需手动指定Jib认证参数:
    build backend:
      image: maven:3.8.6-amazoncorretto-17
      stage: build
      tags:
        - runner-docker
      variables:
        AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
        AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
        AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION
      script:
        - cd backend
        - mvn clean install -DskipTests -Pdocker
    
    Jib会自动读取环境变量中的AWS凭据,调用AWS SDK生成ECR临时授权Token,完成镜像推送。

方案2:手动生成ECR授权Token并传给Jib

若自动发现存在问题,可手动生成Token并传递给Jib:

  1. 同样在GitLab CI Variables中配置AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_DEFAULT_REGION
  2. 修改CI脚本,安装AWS CLI并生成Token:
    build backend:
      image: maven:3.8.6-amazoncorretto-17
      stage: build
      tags:
        - runner-docker
      before_script:
        - apt-get update && apt-get install -y awscli
      variables:
        AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
        AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
        AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION
      script:
        - cd backend
        # 生成ECR授权Token
        - ECR_TOKEN=$(aws ecr get-login-password --region $AWS_DEFAULT_REGION)
        # 传递Token给Jib(用户名固定为AWS)
        - mvn clean install -DskipTests -Pdocker \
            -Djib.to.auth.username=AWS \
            -Djib.to.auth.password=$ECR_TOKEN
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 14:40:29