作为具有 777 权限的 configmap 挂载的 Bash 脚本无法运行

Nee*_*koy 5 kubernetes kubernetes-helm

这可能很简单,但我似乎无法弄清楚为什么作为配置映射安装的 bash 脚本不能以 root 身份运行:

root@myPodId:/opt/nodejs-app# ls -alh /path/fileName 
lrwxrwxrwx 1 root root 18 Sep 10 09:33 /path/fileName  -> ..data/fileName

root@myPodId:/opt/nodejs-app# whoami
root

root@myPodId:/opt/nodejs-app# /bin/bash -c /path/fileName
/bin/bash: /path/fileName: Permission denied
Run Code Online (Sandbox Code Playgroud)

我猜测,但我认为与 Docker 一样,容器中的根不是实际的根,而是更像伪根帐户。

如果是这种情况,并且文件无法以这种方式运行,那么如何包含该脚本,而不必在每次脚本更改时重新创建 Docker 容器?

Mor*_*lst 17

请参阅此处: https: //github.com/kubernetes/kubernetes/issues/71356#issuecomment-441169334

您需要将 ConfigMap 上的 defaultMode 设置为您请求的权限:

volumes:
- name: test-script
  configMap:
    name: test-script
    defaultMode: 0777
Run Code Online (Sandbox Code Playgroud)