在创建Docker容器时,我一直遇到UID/GID没有反映在容器中的问题(我意识到这是设计的).我正在寻找的是一种保持主机权限合理和/或从我的Docker容器中的主机用户/组帐户复制UID/GID的方法.例如:
主持人 -
woot4moo:X:504:504:woot4moo:/首页/ woot4moo:/斌/庆典
我想在Docker容器中使用相同的行为.话虽这么说,这甚至是做这种事情的正确方法吗?我的信念是我可以简单地运行:
useradd -u 504 -g 504 woot4moo
作为我的Dockerfile的一部分,但我不确定这是否有效.
您不希望将其作为映像构建过程的一部分(在Dockerfile中)运行,因为某人运行容器的主机通常不是构建映像的主机.
解决此问题的一种方法是通过环境变量传递UID/GID信息:
docker run -e APP_UID=100 -e APP_GID=100 ...
然后ENTRYPOINT
在运行之前有一个包含以下内容的脚本CMD
:
useradd -c 'container user' -u $APP_UID -g $APP_GID appuser chown -R $APP_UID:$APP_GID /app/data