"failed to fetch builder image ... Cannot connect to the Docker daemon at unix" 使用 buildpacksio/pack 构建 docker 图像时出错
"failed to fetch builder image ... Cannot connect to the Docker daemon at unix" error while building docker image with buildpacksio/pack
在我的笔记本电脑 (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 in 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"
但现在面临 'permission denied' 错误:
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
我的需求似乎很普遍,因此我们将不胜感激:)
您能否尝试使用以下方式安装 docker.sock 文件:
-v "/var/run/docker.sock:/var/run/docker.sock:Z"
我从经验中知道,如果没有“:Z”部分,docker 会将文件挂载为目录。
更新: :Z
部分我错了。 ...:/var/run/docker.sock
部分告诉 docker 文件是文件而不是目录。您可以删除 :Z
后缀。
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"
在我的笔记本电脑 (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 in 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"
但现在面临 'permission denied' 错误:
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
我的需求似乎很普遍,因此我们将不胜感激:)
您能否尝试使用以下方式安装 docker.sock 文件:
-v "/var/run/docker.sock:/var/run/docker.sock:Z"
我从经验中知道,如果没有“:Z”部分,docker 会将文件挂载为目录。
更新: :Z
部分我错了。 ...:/var/run/docker.sock
部分告诉 docker 文件是文件而不是目录。您可以删除 :Z
后缀。
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"