如何在Codebuild中使用自定义docker镜像node:16.13.0-alpine并解决拉取报错
错误原因
BUILD_CONTAINER_UNABLE_TO_PULL_IMAGE报错搭配AuthorizationData is malformed提示,说明CodeBuild拉取镜像时读取配置的仓库鉴权凭证失败,常见原因是凭证格式不符合要求、CodeBuild角色无权限读取密钥,或是给不需要鉴权的公共镜像额外配置了凭证导致鉴权逻辑出错。
解决步骤
- 如果你拉取的是
node:16.13.0-alpine这类Docker Hub公共镜像,直接删除Registry credentials区域配置的Secrets Manager ARN即可,公共镜像拉取不需要额外配置鉴权信息。 - 如果你确实需要拉取私有仓库镜像,按如下要求检查配置:
- 检查Secrets Manager存储的凭证格式,必须为包含
username和password顶级字段的标准JSON,示例如下:
不要嵌套多余层级,也不要修改字段名(比如不能写成{ "username": "私有仓库用户名", "password": "私有仓库密码/访问令牌" }user、pass等)。
2. 检查CodeBuild关联的IAM服务角色权限,必须添加secretsmanager:GetSecretValue权限,资源指定为你存储凭证的Secrets Manager ARN,避免权限范围不匹配导致读取失败。 - 检查Secrets Manager存储的凭证格式,必须为包含
- 配置修改完成后重新触发构建即可。
内容的提问来源于stack exchange,提问作者jpskgc
相关产品推荐
相关产品推荐

