我正在嘗試nginxinc/nginx-unprivileged為 nginx 作業人員使用不同的 uid 和 gid。為此,我提供了 UID 和 GID docker 引數,但它們似乎被默認引數覆寫了。這是我嘗試過的兩種變體:
檔案
ARG UID=998
ARG GID=998
# This image allows from parameterized UID/GID
FROM nginxinc/nginx-unprivileged:1.21.4
命令: docker build --tag nginx-uids .
和
檔案
FROM nginxinc/nginx-unprivileged:1.21.4
命令: docker build --tag nginx-uids --build-arg UID=998 。
后者甚至錯誤:[Warning] One or more build-args [UID] were not consumed,這表明它不使用 UID。
一定有什么我錯過了,但我無法弄清楚它是什么。謝謝!
uj5u.com熱心網友回復:
UID并且在構建它時GID僅arguments用于影像。這似乎沒有被使用。
換句話說,ARG在構建影像時使用,而不是重用影像。
您不能使用--userof 引數,docker run因為影像檔案將由影像 Dockerfile 內容擁有UID=101并GID=101基于影像 Dockerfile 內容。但是沒關系,它已經可以用那個用戶而不是 root 運行了。
uj5u.com熱心網友回復:
事實證明 aFROM不會受到 影響ARGS,因為層已經構建好了。回答我自己的問題:為了使 ARGS 作業,我可以使用:
docker build -t nginxinc/docker-nginx-unprivileged --build-arg UID=998 --build-arg GID=999 'https://github.com/nginxinc/docker-nginx-unprivileged.git#main:stable/debian'
然后從該影像構建。
我選擇從 Dockerfile 編輯用戶(這種方法不適用于 docker-nginx-unprivileged,因為那里的用戶已經在運行 nginx 主行程)。
FROM nginx:1.21.4
RUN usermod -u 998 -o nginx && groupmod -g 999 -o nginx
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/386044.html
