Docker-Compose创建的文件属于root用户

7
我按照这里描述的所有步骤进行操作:https://docs.docker.com/compose/django/ 一切都可以运行,但问题在于创建的文件属于root。我不知道该如何更改。 我能够运行docker run hello-world-无需sudo。 我运行的命令是:docker-compose run web django-admin.py startproject composeexample . 有什么线索可以强制使用我的用户作为所有者吗?

1
你有没有偶然在 Docker 客户端上设置了粘滞位?ls -la \which docker`` - WooDzu
也许将以下内容添加到web服务的yml文件中可以解决问题:user: $UID - WooDzu
它说这个变量未定义。 - tunarob
你的docker-compose版本是多少?变量插值仅在1.5版中才被添加。请参阅https://github.com/docker/compose/releases。 - WooDzu
@WooDzu 这两种方式实际上是等价的,它们都在主机上作为配置加载的一部分进行评估。 您必须在主机上设置UID才能使其正常工作。 我认为 user: $USER 会起作用。 - dnephin
显示剩余3条评论
1个回答

3
指令已更新,下一部分有解决方案:sudo chown -R $USER:$USER . 这是因为容器内的用户是root。你可以设置容器内的用户,但必须创建一个与主机上用户相同uid的新用户才能匹配权限/所有权。根据@galozek的建议通过“user”键设置用户也应该可以正常工作,但这是在15小时前(我写作时)发布的1.5版本中添加的...

指令最近更新,包括了这个细节。 - dnephin
1
所以就是这样。如果我的回答有些刻薄,我向您道歉。 - Adrian Mouat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接