首页 > 解决方案 > 运行代码构建时面临问题

问题描述

我正在尝试构建一个示例 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

阶段:安装:运行时版本:java:corretto8 docker:18 pre_build:命令:- echo 登录到 Amazon ECR...- aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/z8i5wy3u build: commands: - echo Build started on date - mvn package post_build: commands: - echo Building the Docker image... - docker build -t atlas2-非盟。- 码头工人标签 atlas2-au:latest public.ecr.aws/z8i5y3u6/atlas:latest - 码头工人推送 public.ecr.aws/z8i5y3u6/atlas2-au:latest

标签: dockeraws-codebuildamazon-ecr-public

解决方案


根据我的说法,命令和 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


推荐阅读