我想在 kubernetes 中运行 consul,但不允许我以 root 用户身份运行它。
因此我添加了
RUN addgroup consul root
到 Dockerfile(派生自 FROM consul:1.0.3
)
并在 kubernetes 中启动部署
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
xyz.service: consul-deployment
name: consul-deployment
spec:
template:
spec:
securityContext:
runAsUser: 100
现在我希望 kubernetes 以用户 100
启动 consul(当我在 Docker 本地启动它时,他曾经是用户 consul
,现在应该是该组的成员根
)。
但是现在启动 pod 时出现以下错误
chown: /consul/data: Operation not permitted
chown
在 Consuls docker-entrypoint.sh
中执行我猜它(仍然)失败,因为用户 100
不是 root。
当容器有一个需要以 root 身份执行的入口点脚本时,有人可以解释一下如何使用非 root 用户启动容器吗?
最佳答案
我最终修复了 Consuls docker-entrypoint.sh
,通过添加一些 if [ "$(id -u)"= 来在执行 chown 命令之前检查用户是否是 root “0”]
测试。
关于docker - 以非 root 身份在 kubernetes 中运行 Consul Docker 镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50137167/