我尝试使用 aws code build service 构建 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
但我在构建过程中出现错误,docker 命令无法连接到 docker 守护程序。请帮我解决这些问题。
Docker 构建项目配置详细信息如下:
构建错误详细信息如下:
答案1
答案2
如果使用 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
)