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

使用Circle CI aws-ecr-orb推送镜像至AWS私有仓库时遇400错误

CircleCI推送AWS ECR时400 Bad Request错误的原因分析

错误日志

#16 exporting to image
#16 sha256:7dd518c28ca8d9b4a669654c56822c182f0329e5b5897d4cc9241360bd781320
#16 pushing layers 3.4s done
#16 pushing manifest for ************.dkr.ecr.*********.amazonaws.com/***********:latest@sha256:73bcacc452698bb9bc03feb199ffde7d62016bfb46b783c436f9c8e5a8a69e32
#16 pushing manifest for ************.dkr.ecr.*********.amazonaws.com/***********:latest@sha256:73bcacc452698bb9bc03feb199ffde7d62016bfb46b783c436f9c8e5a8a69e32 0.3s done
#16 ERROR: failed to push ************.dkr.ecr.*********.amazonaws.com/***********:latest: failed commit on ref "manifest-sha256:73bcacc872698bb9bc03feb199ffde7d62016bfb46b783c436f9c8e5a8a69e32": unexpected status: 400 Bad Request
------
 > exporting to image:
------
error: failed to solve: rpc error: code = Unknown desc = failed to push ************.dkr.ecr.*********.amazonaws.com/***********:latest: failed commit on ref "manifest-sha256:73bcacc872698bb9bc03feb199ffde7d62016bfb46b783c436f9c8e5a8a69e32": unexpected status: 400 Bad Request

Exited with code exit status 1
CircleCI received exit code 1

常见触发原因

  • 镜像清单格式不兼容:AWS ECR仅支持特定版本的Docker镜像清单(如Manifest V2 Schema 2),若构建生成旧版Schema 1格式或未被正确识别的OCI格式,会触发400错误。部分旧版本Docker构建工具或自定义构建参数可能生成不符合要求的清单。
  • 镜像标签/仓库名称违规:ECR对仓库名和标签的字符有严格限制,仅允许小写字母、数字、连字符、下划线、点号和斜杠,且不能以特殊字符开头或结尾。如果镜像标签或仓库名包含违规字符,推送时会返回400。
  • 多架构镜像配置问题:若构建的是多架构镜像(multi-arch),但ECR仓库未开启对应支持,或构建工具生成的多架构清单存在格式错误,会导致清单提交失败。
  • CircleCI ECR Orb版本过时:旧版本的aws-ecr-orb可能与AWS ECR的最新API规范不兼容,发送的请求格式不符合ECR要求,从而触发400错误。
  • IAM角色请求签名异常:虽然Layer推送成功,但清单提交时的IAM请求签名格式有误(比如角色权限配置中缺少ecr:PutImage权限,或信任关系配置错误),也可能导致ECR返回400而非403权限错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 05:30:50