3
是否有任何方法將非命名卷掛載爲非root用戶?我試圖避免必須在每個Dockerfile中運行chown
,但我需要非root用戶可以寫入mount以便能夠寫入由映像中的內部版本創建的工件在Docker中以非root用戶身份掛載「named volume」
這是我'米試圖
docker run --rm -it -v /home/bob/dev/:/src/dev -v builds:/mnt/build --name build hilikus/build /bin/bash
但對於第二座架,我得到
[[email protected] ~]$ ll /mnt
total 4
drwxr-xr-x 2 root root 4096 Sep 18 19:29 build
我的其他安裝(/src/dev/
)由用戶擁有,而不是由root所以它給我所需要的;但是,我無法對指定的卷執行相同的操作。
很奇怪,我有一個類似的Dockerfile如你,但我有這個額外的指令'VOLUME/data',當我在執行'docker run'的時候,所有的東西都回到'root'的所有權上(注意另一個區別是我的卷在開始時是空的,所以我只更改卷文件夾所有權 – Huygens
我在這裏說'我聽到了公牛的聲音'!我忽略了有關'Dockerfile'的文檔,它聲明'從Dockerfile中更改卷:如果任何構建步驟在卷之後更改卷中的數據宣佈,那些cha年紀將被丟棄。「我剛剛拿到了! VOLUME指令是在我創建文件夾並設置權限之前。它被簡單地丟棄了。 – Huygens
@惠更斯我有一個個人最佳實踐,不要將卷與Dockerfile混合。看到我的博客文章的完整解釋,但你已經遇到了一個重大問題已經:https://boxboat.com/2017/01/23/volumes-and-dockerfiles-dont-mix/ – BMitch