[英]Unable to give write permissions to Docker volume to non-root user in Docker Compose
[英]Docker: How to give root permissions for the local user?
我正在像這樣在 Docker 中運行構建:
docker run --user $(id -u):$(id -g) --rm --network=host -v `pwd`:${SRC_MOUNT_DIR} my-image:latest my-build-script.sh
我正在使用--user
設置本地用戶,以避免 root 擁有的文件出現在我的主目錄中。
現在,問題是我需要在我的構建腳本中使用sudo apt install
來安裝來自其他一些構建的一些依賴項,但這需要 root。
我怎么安排這個? 我想不可能讓所有可能的用戶在沒有密碼的情況下使sudo
工作..?
如果您容器內的用戶可以運行sudo apt install ...
那么您也可以以 root 身份運行容器中的所有內容,因為任何攻擊都可以sudo ...
任何攻擊代碼。 反而:
考慮是否需要在容器內apt install
,或者是否可以在圖像中安裝。 最好在映像中安裝二進制文件並部署它們,而不是每次運行容器時都重新安裝應用程序。
如果您有一個在啟動時需要 root 的用例,那么以 root 身份啟動您的容器,然后在完成這些 root 步驟后將其交給用戶。 像gosu
這樣的工具就是為此而設計的。 對於執行此操作的入口點示例,我有一個帶有入口點腳本的 docker-base 映像,該腳本添加gosu
並使用exec
運行 CMD 以避免/bin/sh
作為 pid 1(這有助於信號處理)。
Gosu 可以在以下位置找到: https : //github.com/tianon/gosu
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.