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

Jenkins流水线400错误:Docker镜像无法推送至AWS ECR的解决咨询

Jenkins流水线推送AWS ECR失败(400 Bad Request)解决建议

问题描述

Docker镜像已构建完成,但执行以下命令推送至AWS ECR时出错:

  1. aws ecr get-login-password --region ap-south-1
  2. docker login --username AWS --password-stdin 010928217164.dkr.ecr.ap-south-1.amazonaws.com/java-application

错误信息:

Error saving credentials: error storing credentials - err: exit status 1, out: pass not initialized: exit status 1: Error: password store is empty. Try "pass init"

解决建议

  • 改用文件存储Docker凭证
    Docker默认依赖pass工具存储凭证,但Jenkins代理环境未初始化该工具。可修改Docker配置切换为文件存储:
    编辑Docker配置文件(路径通常为~/.docker/config.json或/etc/docker/config.json),添加或更新如下内容:

    {
      "credsStore": "file"
    }
    

    修改后重启Docker服务(Linux节点执行sudo systemctl restart docker)。

  • 流水线内临时指定凭证存储方式
    无需修改全局配置,在docker login前设置临时环境变量,让Docker使用临时目录存储凭证:

    export DOCKER_CONFIG=$(mktemp -d)
    aws ecr get-login-password --region ap-south-1 | docker login --username AWS --password-stdin 010928217164.dkr.ecr.ap-south-1.amazonaws.com/java-application
    
  • 排查AWS权限(额外验证)
    400 Bad Request也可能和权限不足有关,确认Jenkins使用的IAM身份具备以下权限:

    • ecr:GetAuthorizationToken
    • ecr:InitiateLayerUpload
    • ecr:UploadLayerPart
    • ecr:CompleteLayerUpload
    • ecr:PutImage

内容的提问来源于stack exchange,提问作者Vishwanath.U

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 17:12:05