docker - 使用 buildpacksio/pack 构建 Docker 映像时出现“无法获取构建器映像...无法在 unix 上连接到 Docker 守护程序”错误
问题描述
在我的笔记本电脑 (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"
但现在面临“权限被拒绝”错误:
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
后缀。
推荐阅读
- oracle - 存储过程中列中的值未更新
- python - 按下另一个键后忽略持续输入
- google-bigquery - 从 bigquery 表中删除 ascii 0
- css - 更改 Vuejs 中选择禁用选项的颜色
- android-studio - Andriod Studio:未安装 HAXM
- repository-pattern - 使用存储库模式时如何调用 SQL 函数/存储过程
- c# - 实体框架 6 - SqlException:无效的对象名称“dbo.Course”
- c++ - 您可以在运算符重载函数中创建和销毁 pthread
- php - Laravel 8.x - 使用 Eloquent 关系存储数据
- powershell - 将新导入的用户添加到多个组