Ошибка сборки кода AWS: не удается подключиться к демону Docker

Я пытался создать образ докера, используя сервис построения кода aws, а затем перенести его в 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


Но я получаю ошибку во время процесса сборки, команда docker не может подключиться к демону docker. Пожалуйста, помогите мне решить эту проблему.

Подробности конфигурации проекта сборки Docker приведены ниже:

Детали ошибки сборки приведены ниже:

2 ответа

Я отвечаю на свой вопрос, так что это может помочь кому-то, у кого возникает такая же проблема. Решение было довольно простым, мне нужно проверить личную вкладку, которую я не заметил.

Решение:

  1. В консоли AWS CodeBuild выберите проект сборки.
  2. Выберите раскрывающийся список "Изменить" в правом верхнем углу и выберите параметр "Среда".
  3. На странице "Изменить среду" выберите "Переопределить изображение". После этого прокрутите вниз, чтобы найти "Привилегированный" вариант и выберите его.
  4. Выберите "Обновить среду", чтобы убедиться, что свойство обновлено.

Если вы используете CDK, вам придется установитьdocker_enabled_for_synthфлаг в CodePipeline. Кроме того, вам может потребоваться выполнить развертывание вручную (cdk Deploy), поскольку у меня не сработала самомутация конвейера.

      pipeline = pipelines.CodePipeline(
            scope=self,
            id="SomeCodePipeline",
            ...
            docker_enabled_for_self_mutation=True,
            docker_enabled_for_synth=True,  # enable docker builds
        )
Другие вопросы по тегам