我想在剩余的dockerfile中为我的所有RUN命令修复某个umask。而不是写这个
RUN umask 0002 && do_something
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情
RUN echo umask 0002 >> some_file
RUN do_something
...
Run Code Online (Sandbox Code Playgroud)
我尝试过root以各种方式设置umask,但是它们似乎都对以下RUN命令无效。有任何想法吗?
Docker不会RUN像完整的登录Shell那样初始化每个步骤,而是创建了一个非常小的环境。
启动容器时,runc将umask 设置为0022,这也是不可配置的。
因此,像大多数Docker构建一样,您可能需要将命令链接到一个RUN步骤中,以便所有这些操作都在同一Shell进程下进行。
RUN set -uex; \
umask 0002; \
do_something; \
do_otherthing;
Run Code Online (Sandbox Code Playgroud)
否则,您将需要在每个RUN步骤中进行某种类型的初始化。
| 归档时间: |
|
| 查看次数: |
1843 次 |
| 最近记录: |