我在代码构建过程的构建阶段遇到以下错误:
“执行命令时出错:docker build-t…”原因:退出状态1
我有一个使用ecr权限设置的代码构建服务角色,aws ecr登录阶段已经成功,我的buildspec.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
完整错误消息(生成阶段):
COMMAND_EXECUTION_ERROR: Error while executing command docker build -t maxmind:latest .. Reason: exit status 1
完整错误消息(生成后阶段):
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
我尝试过的事情
将Amazon EC2ContainerRegstryPowerUser策略附加到由我的构建过程创建的codeBuild-service-角色
基于评论。
有两个问题。第一个没有在CodeBuild项目中使用PrivilegedMode
模式。在docker容器中构建docker映像时需要该模式。
第二个问题是缺少权限iam:DeletePolicyVersion
。
启用该模式并添加缺少的权限,解决了该问题。
Docker的口号是 Build,Ship,and Run Any App,Anywhere,在我们使用 Docker 的大部分时候,的确能感觉到其优越性,但是往往在我们 Build 一个应用的时候,是将我们的源代码也构建进去的,这对于类似于 golang 这样的编译型语言肯定是不行的,因为实际运行的时候我只需要把最终构建的二进制包给你就行,把源码也一起打包在镜像中,需要承担很多风险,即使是脚本语
FROM alpine:3.9.6 as build # 构建xlswriter扩展,根据自身需要替换版本号 ENV XLSWRITER_VERSION 1.3.4.1 RUN apk update \ && apk add --no-cache php7-pear php7-dev zlib-dev re2c gcc g++ make curl \ && curl -fs
问题内容: 如何在中指定多阶段构建? 对于每个变体(例如dev,prod …),我都有一个包含2个docker文件的多阶段构建: 开发人员:+ 或产品:+ 文件(所有变体通用): 档案: 档案: 没有docker-compose,我可以构建为: 根据compose-file doc,我可以指定要构建的Dockerfile。 但是,如何在其中指定2个Dockerfile (用于多阶段构建)? 问题答
因为AWS代码构建提供了“Docker”策划的图像(http://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref.html),我想重用其中一个来构建我的自定义代码构建映像(http://docs.aws.amazon.com/codebuild/latest/userguide/sample-docker-custom-im
多阶段构建 之前的做法 在 Docker 17.05 版本之前,我们构建 Docker 镜像时,通常会采用两种方式: 全部放入一个 Dockerfile 一种方式是将所有的构建过程编包含在一个 Dockerfile 中,包括项目及其依赖库的编译、测试、打包等流程,这里可能会带来的一些问题: 镜像层次多,镜像体积较大,部署时间变长 源代码存在泄露的风险 例如,编写 app.go 文件,该程序输出 H
以下Dockerfile一直在构建错误的体系结构: 注:我不能使用buildx,因为我需要为不同的体系结构安装特定的工具 arm64/Dockerfile docker build: docker inspect: 输出:(应该是arm64而不是amd64)?