Amazon web services ECR图像推送AWS代码构建问题

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-*)

命令执行错误:执行命令时出错:$(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-*)
      - 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"
}   '