我想在dockerfile的其余部分为我的所有RUN命令修复某个umask。而不是写这个
RUN umask 0002 && do_something
我想做这样的事情
RUN echo umask 0002 >> some_file
RUN do_something
...
我已尝试以各种方式为root
设置umask,但它们似乎都不会对以下RUN
命令生效。有什么想法吗?
答案 0 :(得分:4)
Docker不会将每个RUN
步骤初始化为完整的登录shell,它会创建一个非常小的环境。
当启动容器set to 0022 by runc时,umask为not configurable。
因此,像大多数Docker构建一样,您可能需要将命令链接到一个RUN
步骤,因此它们都在同一个shell进程下。
RUN set -uex; \
umask 0002; \
do_something; \
do_otherthing;
否则,您需要在每个RUN步骤中进行某种类型的初始化。