[英]How do I grant the paketo builder access permissions to the docker socket when building from a docker image?
在 Fedora 上使用 buildpacks 構建我的 spring 引導應用程序時,在執行spring-boot-plugin:build-image目標期間出現以下錯誤:
[INFO] [creator] ERROR: initializing analyzer: getting previous image: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/info": dial unix /var/run/docker.sock: connect: permission denied
在深入研究了目標和構建包之后,我在buildpack.io 文檔中找到了以下命令(通過選擇“Linux”和“Container”):
docker run \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $PWD:/workspace -w /workspace \
buildpacksio/pack build <my-image> --builder <builder-image>
AFAICT 這個命令應該等同於 maven 內部發生的事情,並且它表現出相同的錯誤。 我之前的假設是buildpacksio/pack
映像中的使用沒有對我的 docker 套接字的訪問權限。 (套接字有 660 個權限和 root:docker 所有者)。
更新:即使更新到 666 權限后,問題仍然存在。
我真的不想讓任何人與 docker 套接字交互,因此將其設置為 666 似乎是不明智的。 這是唯一的選擇還是我也可以將容器中的用戶添加到 docker 組?
解決方案是 Fedora docker
package 不再是安裝 Docker 的最新方法。 請參閱官方 Docker 文檔它們都提供相同的版本號,但它們的構建 hash 不同。
雖然我無法完全診斷兩者之間的區別,但我可以報告它適用於 docker docker-ce
而不適用於docker
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.