我试图在AWS代码构建中构建一个Docker容器,作为将容器部署到ECR的一种方式,但是出现此错误。
Error while executing command: $(aws ecr get-login --region ap-southeast-1). Reason: exit status 255
此命令使用aws / codebuild / ubuntu-base:14.04在buildspec.yml文件上运行,如果要构建Docker映像或希望构建获得提升的特权,请启用此标志。
日志文件如下:
[Container] 2018/10/11 00:52:49 Running command $(aws ecr get-login --region $AWS_DEFAULT_REGION --no-include-email)
An error occurred (AccessDeniedException) when calling the GetAuthorizationToken operation: User: arn:aws:sts::502776083946:assumed-role/code-build-timesheet/AWSCodeBuild-f1d205b1-b03f-4727-a4d7-a02118021eec is not authorized to perform: ecr:GetAuthorizationToken on resource: *
[Container] 2018/10/11 00:52:52 Command did not exit successfully $(aws ecr get-login --region $AWS_DEFAULT_REGION --no-include-email) exit status 255
[Container] 2018/10/11 00:52:52 Phase complete: INSTALL Success: false
[Container] 2018/10/11 00:52:52 Phase context status code: COMMAND_EXECUTION_ERROR Message: Error while executing command: $(aws ecr get-login --region $AWS_DEFAULT_REGION --no-include-email). Reason: exit status 255
答案 0 :(得分:3)
此状态码通常表示未经授权的用户。要解决此问题,我们需要让我们的代码构建角色能够与ECR
进行对话。为此,请执行以下操作:转到IAM
,然后将AmazonEC2ContainerRegistryPowerUser
策略附加到您的CodeBuild
角色。
答案 1 :(得分:0)
您的cloudwatch日志中是否还有其他特定错误?像AccessDenied还是其他?失败的命令部分周围的日志中应包含一些详细信息。 谢谢, 辛
答案 2 :(得分:0)