openshift - OpenShift 支持任意用户 ID
问题描述
从支持任意用户 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
解决方案
用户 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
,它必须是整数值。
推荐阅读
- linux - 将g ++编译器的输出重定向到文件?
- types - 空文件的大小是多少?我得到 220 字节 (4KB) 大小的空文件。为什么?
- php - 调用成员 bind_param 的错误 mysqli 数组
- scala - 读取第一个表并在 spark SQL 中执行输入并插入到另一个表中
- c# - 获取枚举值时出现 Linq 表达式错误。我遵循了不同的谷歌技巧,但没有帮助。我是 Ef Core 的新手
- sql - SSMS 从字符串中收集多个变量
- angular - ngOninit Test 无法正常工作的 Angular Jasmine 测试
- ruby - 如何从我的 ruby docker 应用程序连接到 postgres docker 映像?
- php - 信息未存储在数据库中
- kubernetes - 如何使所有 k8s 节点从/向 Google Compute Engine 上的一个共享存储读取/写入