在 Dockerfile 中为 Docker 镜像选择 USER ID 和 GROUP ID 的任何标准指南?

问题描述

我通常使用 1111 作为容器的用户 ID 和组 ID,但是当我在 OpenShift 平台上部署我的应用程序时,我在调度 Pod 时出错。

unable to validate against any security context constraint: [fsGroup: Invalid value: []int64{1111}: 1111 is not an allowed group spec.containers[0].securityContext.securityContext.runAsUser: Invalid value: 1111: must be in the ranges: [1000750000,1000759999]]

我知道,此限制是由集群上的某些安全上下文约束 (SCC) 强加的,我的应用程序 Pod 不满足这些约束。我只是想了解一下,是否有一些关于选择这些 userId 和 GroupID 的标准规则/指南。 任何帮助将不胜感激!

解决方法

根据 RedHat 的建议,您的 image should 的构建方式使其可以 run with an arbitrary user id。 因此,如果您遵循该规则,则无需在 Dockerfile 或部署 yaml 清单中指定用户 ID。 Openshift 将自动选择一个任意用户 ID(从范围内)并使用它运行 pod。

Check this link for more details.