我在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角色上。
根据评论。
有两个问题。第一个是没有使用 PrivilegedMode
模式,在CodeBuild项目中。在docker容器内构建docker镜像时,需要使用该模式。
第二个问题是缺少权限 iam:DeletePolicyVersion
.
启用该模式并添加缺失的权限,解决了问题。