修复dockerfile中未来RUN命令的umask

时间:2017-10-23 14:15:07

标签: docker dockerfile

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

RUN umask 0002 && do_something

我想做这样的事情

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

我已尝试以各种方式为root设置umask,但它们似乎都不会对以下RUN命令生效。有什么想法吗?

1 个答案:

答案 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步骤中进行某种类型的初始化。