【发布时间】:2015-07-14 22:23:32
【问题描述】:
我正在尝试使用 Docker 和 Django 找到工作流程。目前,我正在使用the docker documentation 的基本配置。
我想直接从容器中使用manage.py startapp 来启动一个新的应用程序:
docker-compose run web ./manage.py startapp myapp
但是卷中创建的所有文件都归root用户所有,而不是我自己,所以我无法从主机编辑它们。
我的想法是避免在我的主机上安装所有要求,但也许我不应该从容器创建应用程序?
一种可能的解决方案是创建一个用户并使其具有与我的主机上的用户相同的 UID/GID,但如果我尝试在我的主机上使用其他帐户,它将无法工作...
有什么建议吗?
【问题讨论】:
-
你应该在你的Dockerfile中添加一个
USER xx,xx是一个非特权用户,你之前在你的Dockerfile中创建了一个从docs.docker.com/articles/dockerfile_best-practices中提取的内容,比如RUN groupadd -r postgres && useradd -r -g postgres postgres" -
一个带有 useradd 和 USER forum.ubuntu-fr.org/viewtopic.php?id=1809831 的 Dockerfile 示例
-
之所以有效,是因为我在主机上的用户帐户与在容器中创建的用户具有相同的 UID/GID。但是,如果我在主机上使用另一个帐户,它将无法工作:/
-
您可以将 uid gid 作为 Dockerfile 的参数