CodeBuild 构建的 docker 构建阶段出错

Tim*_*m_B 4 amazon-web-services aws-codebuild

我在 CodeBuild 构建过程的 BUILD 阶段收到以下错误:

“执行命令时出错:docker build -t ...”原因:退出状态1

我有一个设置了 ecr 权限的代码构建服务角色,aws ecr 登录阶段已经成功,我的 buildspec.yml 非常简单 - 几乎只是标准模板。运行时是 Amazon 管理的 ubuntu 映像,标准。

是否有任何原因为什么 Docker 构建可能会失败以及任何人建议进行故障排除?

谢谢

完整的 buildspec.yml 文件:

version: 0.2

phases:
  pre_build:
    commands:
      - echo Logging in to Amazon ECR...
      - $(aws ecr get-login --no-include-email --region eu-west-1)
  build:
    commands:
      - echo Building the Docker image...          
      - docker build -t maxmind:latest .
      - docker tag maxmind:latest 381475286792.dkr.ecr.eu-west-1.amazonaws.com/maxmind:latest      
  post_build:
    commands:
      - echo Build completed on `date`
      - echo Pushing the Docker image...
      - docker push 381475286792.dkr.ecr.eu-west-1.amazonaws.com/maxmind:latest
Run Code Online (Sandbox Code Playgroud)

完整的错误信息(BUILD 阶段):

COMMAND_EXECUTION_ERROR: Error while executing command docker build -t maxmind:latest .. Reason: exit status 1
Run Code Online (Sandbox Code Playgroud)

完整的错误信息(POST_BUILD 阶段):

COMMAND EXECUTION_ERROR: Error while executing command: docker push 381475286792.dkr.ecr.eu-west-1.amazonaws.com/maxmind:latest. Reason: exit status 1
Run Code Online (Sandbox Code Playgroud)

完整的错误消息(日志流)

[Container] 2020/05/20 09:28:54 Running command docker build -t maxmind:latest .
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

[Container] 2020/05/20 09:28:54 Command did not exit successfully docker build -t maxmind:latest . exit status 1
[Container] 2020/05/20 09:28:54 Phase complete: BUILD State: FAILED
Run Code Online (Sandbox Code Playgroud)

我尝试过的事情

将 AmazonEC2ContainerRegistryPowerUser 策略附加到我的构建过程创建的 codebuild-service-role

Mar*_*cin 5

根据评论。

有两个问题。第一个没有PrivilegedMode在 CodeBuild 项目中使用模式。在 docker 容器中构建 docker 镜像时需要该模式。

第二个问题是缺少许可iam:DeletePolicyVersion

启用模式并添加缺少的权限,解决了问题。