CodeBuild构建的docker构建阶段出现错误。

问题描述 投票:0回答:1

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

"Error while executing command: docker build -t ..."(执行命令时出现错误:docker build -t ...)。原因:退出状态1

我设置了一个代码构建服务角色,权限为ecr,aws ecr登录阶段已经成功,我的buildpec.yml真的很简单,差不多就是标准模板。运行时是亚马逊管理的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

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

COMMAND_EXECUTION_ERROR: Error while executing command docker build -t maxmind:latest .. Reason: exit status 1

完整的错误信息(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

完整的错误信息(日志流):

[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

我尝试过的事情

将AmazonEC2ContainerRegistryPowerUser策略附加到我的构建过程所创建的codebuild-service角色上。

amazon-web-services aws-codebuild
1个回答
2
投票

根据评论。

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

第二个问题是缺少权限 iam:DeletePolicyVersion.

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

© www.soinside.com 2019 - 2024. All rights reserved.