簡體   English   中英

從 docker 映像構建時,如何授予 paketo 構建器對 docker 套接字的訪問權限?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM