2

支持任意用户 ID部分中的https://docs.openshift.org/latest/creating_images/guidelines.html#openshift-specific-guidelines阅读。推荐用于:

  • 支持运行任意用户的图像
  • 使目录和文件归根组所有的图像
  • USER使用用户 ID 而非用户名声明的图像

例子:

RUN chgrp -R 0 /some/directory && \
    chmod -R g=u /some/directory
RUN chmod g=u /etc/passwd
ENTRYPOINT [ "uid_entrypoint" ]
USER 1001

我不清楚所有这些是什么意思。

  • 用户 1001 在哪里定义?
  • 是什么g=u意思?
  • 群是什么0意思?
  • 我在下面的图片中指定了创建新用户和组,并以该用户(非 root)身份运行进程。这是错的吗?有人可以帮助解释并提供示例 - 正确的做法是什么?

    RUN useradd -M nonroot \
        && groupadd nonrootgr \
        && chown -R nonroot:nonrootgr /var/lib/myapp
    
    USER nonroot
    
4

1 回答 1

3

用户 1001 在哪里定义?

您需要使用该用户 ID 创建一个非 root 用户帐户。

参见:https ://github.com/sclorg/s2i-base-container/blob/master/core/Dockerfile#L71

g=u 是什么意思?

它将目录/文件的组权限设置为与用户拥有的权限相同。

第 0 组是什么意思?

root组的组 ID 为0

我在下面的图片中指定了.... *

有关如何添加非 root 用户的信息,请参见上面的链接示例。

您必须使用:

USER 1001

您不能使用帐户名称作为 的值USER,它必须是整数值。

于 2018-07-16T00:52:44.627 回答