AWS 代码构建错误:无法连接到 docker 守护进程

Sre*_*u V 4 amazon-web-services docker amazon-ecs

我试图使用 aws 代码构建服务构建 docker 镜像,然后将其推送到 ECR。我用于它的命令"buildspec.yml"在下面指定。

version: 0.2
phases:
  install:
    runtime-versions:
        docker: 18
 pre_build:
      - $(aws ecr get-login --no-include-email --region us-east-1)
      - REPOSITORY_URI=XXXXXXXXXX.dkr.ecr.us-east-1.amazonaws.com/devopswebbuild
      - COMMIT_HASH=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7)
      - IMAGE_TAG=${COMMIT_HASH:=latest}
  build:
    commands:
      - docker build -t $REPOSITORY_URI:latest .
      - docker tag $REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG
  post_build:
    commands:
      - docker push $REPOSITORY_URI:latest
      - docker push $REPOSITORY_URI:$IMAGE_TAG


Run Code Online (Sandbox Code Playgroud)

但是我在构建过程中遇到错误,docker 命令无法连接到 docker daemon。请帮助我解决这些问题。

Docker 构建项目配置详细信息如下:

代码

构建错误详细信息如下:

在此处输入图片说明

Sre*_*u V 6

我正在回答我自己的问题,因此它可能会对遇到相同问题的人有所帮助。解决方案非常简单,我需要检查我没有注意到的特权选项卡。

在此处输入图片说明

解决方案 :

  1. 从 AWS CodeBuild 控制台中,选择构建项目。
  2. 选择右上角的“编辑”下拉菜单,然后选择“环境”选项。
  3. 在“编辑环境”页面中,选择“覆盖图像”。在此之后,向下滚动以找到“特权”选项并选择它。
  4. 选择“更新环境”以确保更新该属性。