修复dockerfile中将来的RUN命令的umask

我想在dockerfile的其余部分修复所有RUN命令的某个umask。 而不是写这个

RUN umask 0002 && do_something 

我想做这样的事情

 RUN echo umask 0002 >> some_file RUN do_something ... 

我曾尝试以各种方式设置umask的root ,但是它们似乎都不会对以下RUN命令生效。 有任何想法吗?

Docker不会像完整的loginshell那样初始化每个RUN步骤,而是创build一个非常小的环境。

当容器启动时,umask被runc设置为0022,这也是不可configuration的 。

所以,像大多数Docker构build的那样,您可能需要将这些命令链接到一个RUN步骤,因此它们全部在同一个shell进程下。

 RUN set -uex; \ umask 0002; \ do_something; \ do_otherthing; 

否则,您需要在每个RUN步骤中进行一些初始化。