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