我尝试使用 helm 部署 mongodb,但出现以下错误:
mkdir: cannot create directory /bitnami/mongodb/data : permision denied.
我也尝试过这个解决方案:
sudo chown -R 1001 /tmp/mongo
但它说没有这个目录。
您在
/bitnami/mongodb/data
上的权限被拒绝,并且您正在尝试修改另一条路径:/tmp/mongo
。您可能根本没有这样的目录。
您需要更改您没有权限的资源的所有者,而不是随机(不相关)路径:)
您可能已经看过这个 github 问题 和这个答案:
您收到该错误消息是因为容器无法挂载您在 docker-compose.yml 文件中指定的 /tmp/mongo 目录。
正如您在我们的变更日志中看到的,容器已迁移到非root用户方法,这意味着用户
需要/tmp/mongo文件夹中的读/写权限,以便可以安装和使用它。您可以修改本地文件夹的权限并尝试再次启动容器吗?1001
sudo chown -R 1001 /tmp/mongo
如果您要挂载
/tmp/mongo
文件夹,则此方法将起作用,这实际上并不常见。寻找另一个答案:
请注意,安装主机路径卷不是使用这些容器的常用方法。如果使用 docker-compose,它将使用 docker 卷(已经处理了权限问题),这同样适用于 Kubernetes 和 MongoDB helm 图表,它将使用
部分来确保适当的权限。securityContext
在您的情况下,您只需更改路径的所有者
/bitnami/mongodb/data
或在 Helm 图表上使用 Security Context ,一切都会为您解决。
可能在这里您可以通过示例上下文找到最有趣的部分:
securityContext:
runAsUser: 1000
runAsGroup: 3000
fsGroup: 2000
fsGroupChangePolicy: "OnRootMismatch"