Amazon web services ECR图像推送AWS代码构建问题
命令执行错误:执行命令时出错:$(aws ecr get login--不包括电子邮件--区域us-east-1)。原因:退出状态127 下面是我的buildspec.yml文件Amazon web services ECR图像推送AWS代码构建问题,amazon-web-services,aws-codebuild,amazon-ecr,Amazon Web Services,Aws Codebuild,Amazon Ecr,命令执行错误:执行命令时出错:$(aws ecr get login--不包括电子邮件--区域us-east-1)。原因:退出状态127 下面是我的buildspec.yml文件 version: 0.2 phases: pre_build: commands: - echo Logging in to Amazon ECR... - aws --version - $(aws ecr get-login --region ***-east-*)
version: 0.2
phases:
pre_build:
commands:
- echo Logging in to Amazon ECR...
- aws --version
- $(aws ecr get-login --region ***-east-*)
- REPOSITORY_URI=***********.dkr.ecr.***-east-*.amazonaws.com/repositoryname
- COMMIT_HASH=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION)
- IMAGE_TAG=${COMMIT_HASH:=latest}
build:
commands:
- echo Build started on `date`
- echo Building the Docker image...
- docker build -t $REPOSITORY_URI:latest .
- docker tag $REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG
post_build:
commands:
- echo Build completed
- echo Pushing the Docker images...
- docker push $REPOSITORY_URI:latest
- docker push $REPOSITORY_URI:$IMAGE_TAG
- echo Writing definitions file...
- printf '[{"name":"project-container","imageUri":"%s"}]' $REPOSITORY_URI:$IMAGE_TAG > taskdefinition.json
artifacts:
files: taskdefinition.json
你的帖子有不一致的细节,这是故意的吗?如果不是,则可能是故障原因。您的代码片段显示:
$(aws ecr get-login --region ***-east-*)
也许你是故意修改了这个区域(顺便说一句,这有什么意义?),但为什么它缺少——不包括电子邮件?在你的帖子上面,你确实提到了——不包括电子邮件,所以我知道你知道这一点
在子shell之外运行该进程以获得更好的日志
与其在子shell中运行它(例如,$(my command)
),不如尝试运行将子shell取出,以便获得更好的输出。在此处报告结果,以便我们对您遇到的错误进行故障排除
aws ecr get login——不包括电子邮件——地区us-east-1
您的帖子有不一致的详细信息,这是故意的吗?如果不是,则可能是故障原因。您的代码片段显示:
$(aws ecr get-login --region ***-east-*)
也许你是故意修改了这个区域(顺便说一句,这有什么意义?),但为什么它缺少——不包括电子邮件?在你的帖子上面,你确实提到了——不包括电子邮件,所以我知道你知道这一点
在子shell之外运行该进程以获得更好的日志
与其在子shell中运行它(例如,$(my command)
),不如尝试运行将子shell取出,以便获得更好的输出。在此处报告结果,以便我们对您遇到的错误进行故障排除
aws ecr get login——不包括电子邮件——地区us-east-1
,以防它帮助其他人完成我在CodeBuild执行的构建脚本中所做的工作。这些是我必须添加的IAM权限(在遇到错误时逐个查找)
我确信,如果你正在做我在你的构建中没有做的事情,可能需要更多的权限。我正在推动ECR并强制服务(以及相关任务)部署新映像。如果它有助于其他人,我将在由CodeBuild执行的构建脚本中执行工作。这些是我必须添加的IAM权限(在遇到错误时逐个查找)
我确信,如果你正在做我在你的构建中没有做的事情,可能需要更多的权限。我正在推动ECR并强制服务(以及相关任务)部署新映像。我使用了以下代码,现在修复了以前的问题<代码>aws ecr登录-不包括电子邮件-地区us-east-1
是,我添加了上述政策。现在我看到下面的错误-COMMAND\u EXECUTION\u错误:执行COMMAND:docker build-t$REPOSITORY\u URI:latest时出错。。原因:退出状态127
很高兴听到您发布的原始错误已解决!请单击复选标记接受答案。要修复docker build
错误,我们需要比退出状态127
更多的详细信息。因此,请在代码构建日志中向上滚动,您将获得有关该问题的更多详细信息。如果你愿意,你可以将它粘贴到这里或者开始一个新的SO帖子。我已经使用了下面的代码,现在修复了以前的问题<代码>aws ecr登录-不包括电子邮件-地区us-east-1
是,我添加了上述政策。现在我看到下面的错误-COMMAND\u EXECUTION\u错误:执行COMMAND:docker build-t$REPOSITORY\u URI:latest时出错。。原因:退出状态127
很高兴听到您发布的原始错误已解决!请单击复选标记接受答案。要修复docker build
错误,我们需要比退出状态127
更多的详细信息。因此,请在代码构建日志中向上滚动,您将获得有关该问题的更多详细信息。如果愿意,您可以将其粘贴到此处或开始新的SO帖子。
{
"Action": [
"ecr:GetAuthorizationToken",
"ecr:DescribeRepositories",
"ecr:CreateRepository",
"ecr:InitiateLayerUpload",
"ecr:UploadLayerPart",
"ecr:CompleteLayerUpload",
"ecr:BatchCheckLayerAvailability",
"ecr:PutImage",
"ecs:UpdateService"
],
"Resource": "*",
"Effect": "Allow"
} '