openshift 不遵守 Dockerfile 中的 USER 指令

Fen*_* Xi 3 openshift-origin kubernetes

我是 Openshift/k8s 的新手。我在 openshift 中运行的 docker 镜像使用的是 USER blabla。但是当我执行到 Pod 中时,它使用的文件与 Dockerfile 中的文件不同。

我想知道为什么?我该如何解决这个问题?

谢谢

Jor*_*itt 5

为了安全起见,集群管理员可以选择强制容器使用集群分配的 uid 运行。默认情况下,大多数容器使用分配给项目的范围内的 uid 运行。

这是由配置的SecurityContextConstraints控制的。

要允许容器按照用户在其 dockerfile 中声明的方式运行(即使这可能会在安全方面暴露集群),请允许 pod 的服务帐户访问 anyuid SecurityContextConstraint (oadm policy add-scc-to-user anyuid system:serviceaccount:<your ns>:<your service account>