Ошибка сборки кода 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 ответа
Я отвечаю на свой вопрос, так что это может помочь кому-то, у кого возникает такая же проблема. Решение было довольно простым, мне нужно проверить личную вкладку, которую я не заметил.
Решение:
- В консоли AWS CodeBuild выберите проект сборки.
- Выберите раскрывающийся список "Изменить" в правом верхнем углу и выберите параметр "Среда".
- На странице "Изменить среду" выберите "Переопределить изображение". После этого прокрутите вниз, чтобы найти "Привилегированный" вариант и выберите его.
- Выберите "Обновить среду", чтобы убедиться, что свойство обновлено.
Если вы используете 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
)