运行代码构建时遇到问题

时间:2021-07-22 12:19:41

标签: docker aws-codebuild

我正在尝试构建一个示例 java 项目并尝试构建一个 docker 镜像并将该镜像推送到 AWS ECR,但在登录 AWS ECR 时遇到了问题。

错误:COMMAND_EXECUTION_ERROR:执行命令时出错:aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/z8i5y3u6。原因:退出状态 1

我使用下面的 buildspec.yml 文件进行构建。不知道我哪里做错了,请帮我解决这个问题。

版本:0.2

阶段: 安装: 运行时版本: 爪哇:corretto8 码头工人:18 预构建: 命令: - echo 登录 Amazon ECR... - aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/z8i5wy3u 建造: 命令: - echo Build 于 date 开始 - mvn 包 post_build: 命令: - echo 正在构建 Docker 镜像... - docker build -t atlas2-au 。 - 码头工人标签 atlas2-au:latest public.ecr.aws/z8i5y3u6/atlas:latest - docker push public.ecr.aws/z8i5y3u6/atlas2-au:latest

1 个答案:

答案 0 :(得分:0)

command 和 buildspec.yml 对我来说是正确的,你是否为 ECR 提供了适当的角色?

Amazon ECR 要求用户拥有通过 IAM 策略调用 ecr:GetAuthorizationToken API 的权限,然后他们才能对注册表进行身份验证并从任何 Amazon ECR 存储库推送或拉取任何图像。 Amazon ECR 提供了多个托管 IAM 策略来控制不同级别的用户访问;有关更多信息,请参阅 Amazon Elastic Container Registry 基于身份的策略 https://docs.aws.amazon.com/AmazonECR/latest/userguide/security_iam_id-based-policy-examples.html