2

我正在尝试使用 Docker 和 Django 找到工作流程。目前,我正在使用docker 文档中的基本配置。

我想manage.py startapp直接从容器中使用来启动一个新应用程序:

docker-compose run web ./manage.py startapp myapp

但是卷中创建的所有文件都归root用户所有,而不是我自己,所以我无法从主机编辑它们。

我的想法是避免在我的主机上安装所有要求,但也许我不应该从容器创建应用程序?

一种可能的解决方案是创建一个用户并使其具有与我的主机上的用户相同的 UID/GID,但如果我尝试在我的主机上使用其他帐户,它将无法工作......

有什么建议吗?

4

1 回答 1

1

对我最有效的是避免(或最小化)在容器内创建文件。

我的 Dockerfile 只需复制 requirements.txt 并安装它们;并且容器将通过已安装的卷访问应用程序文件。

我将 env var 传递PYTHONDONTWRITEBYTECODE=1给容器,因此 python 不会创建*.pyc/*.pyo文件。

有几次我无法避免它(比如,./manage.py makemigrations),然后我就跑chown了。这并不理想,但由于我的情况很少发生这种情况,我不打扰。

于 2015-07-15T01:04:15.663 回答