使用 buildpacksio/pack 构建 docker 镜像时出现“无法获取构建器映像...无法连接到 unix 上的 Docker 守护进程”错误

时间:2021-04-22 14:31:52

标签: docker continuous-integration bamboo buildpack

在我的笔记本电脑 (MacOS) 或我的 CI/CD 工具 (Atlassian Bamboo) 上启动时:

docker run --volume "/Users/username/Documents/git/myapp:/data" --workdir /data --rm buildpacksio/pack:latest build myapp:latest --builder paketobuildpacks/builder:base --env "BP_MAVEN_BUILT_ARTIFACT=target/myapp.jar"

我面临以下错误:

ERROR: failed to build: failed to fetch builder image 'index.docker.io/paketobuildpacks/builder:base': Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

我还尝试在启动之后解决我认为是“Docker 中的 Docker”问题:

docker run --privileged=true -v "/var/run/docker.sock:/var/run/docker.sock" -v "/Users/username/Documents/git/myapp:/data" --workdir /data --rm buildpacksio/pack:latest build myapp:latest --builder paketobuildpacks/builder:base --env "BP_MAVEN_BUILT_ARTIFACT=target/myapp.jar"

但现在面临“权限被拒绝”错误:

ERROR: failed to build: failed to fetch builder image 'index.docker.io/paketobuildpacks/builder:base': Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.38/images/create?fromImage=paketobuildpacks%2Fbuilder&tag=base": dial unix /var/run/docker.sock: connect: permission denied

我的需求似乎很普遍,所以任何帮助将不胜感激:)

2 个答案:

答案 0 :(得分:0)

你可以尝试挂载 docker.sock 文件:

-v "/var/run/docker.sock:/var/run/docker.sock:Z"

我从经验中知道,如果没有 ":Z" 部分,docker 会将文件作为目录安装。

更新::Z 部分我错了。是 ...:/var/run/docker.sock 部分告诉 docker 将文件作为文件而不是目录。您可以删除 :Z 后缀。

答案 1 :(得分:0)

TLDR

使用“buildpacksio/pack:0.13.1”图像而不是更新的图像。

详情

对于标记为 0.13.1 或最低的图像,我没有任何“docker in docker”问题。

所以现在使用以下命令可以正常工作:

docker run --privileged=true -v "/var/run/docker.sock:/var/run/docker.sock" -v "/Users/username/Documents/git/myapp:/data" --workdir /data buildpacksio/pack:0.13.1 build myapp:latest --builder paketobuildpacks/builder:base --env "BP_MAVEN_BUILT_ARTIFACT=target/myapp.jar"