这里没有神奇的解决方案:对docker内部的权限的管理与没有docker的权限相同。您需要运行适当的
chown和
chmod命令来更改目录的权限。
一种解决方案是让您的容器以root用户身份运行,并使用
ENTRYPOINT脚本进行适当的权限更改,然后再
CMD以非特权用户身份使用。例如,将以下内容放入
entrypoint.sh:
#!/bin/shchown -R appuser:appgroup /path/to/volumeexec runuser -u appuser "$@"
假设您有
runuser可用的命令。您可以使用
sudo替代品完成几乎相同的事情。
通过
ENTRYPOINT在Dockerfile中包含指令来使用以上脚本:
FROM baseimageCOPY entrypoint.sh /entrypoint.shENTRYPOINT ["/bin/sh", "entrypoint.sh"]CMD ["/usr/bin/myapp"]
这将以以下内容启动容器:
/bin/sh entrypoint.sh /usr/bin/myapp
入口点脚本将进行所需的权限更改,然后以
/usr/bin/myapp身份运行
appuser。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)