manage.py命令创建的文件未从root用户

时间:2016-05-20 15:30:20

标签: docker-compose cookiecutter-django

我正在使用cookiecutter-django项目模板,其中包括漂亮的docker-compose集成。但是,当我运行一个manage.py命令,通过docker-compose创建一个文件时,例如:

sudo docker-compose -f dev.yml run django python manage.py dumpdata --output ./myapp/fixtures/data.json

该文件归root:root所有,因此我最初对主机文件系统没有写权限。我还在学习docker-compose,并且很难找到chown任何创建的文件返回本地用户的最整洁方式。

我确实尝试在dev.yml的django服务中设置user:标志,如此...

  django:
    user: $USER

但这并没有。

我还读到了关于使用

的内容
django:
  user: ${UID}

但是这也失败并带有警告

WARNING: The UID variable is not set. Defaulting to a blank string.

尽管echo $UID返回了正确的值。因此,由于某种原因,env变量没有正确传递,但我不知道如何进行调试。可能相关:https://github.com/docker/compose/issues/2613

编辑:更多更新。

因此运行docker-compose -f dev.yml run django env表示$ UID不存在。我尝试在entrypoint.sh中分配它,但由于该文件是由root运行的,因此$ UID在运行时将为0。关于如何传递用户ID,我现在没有想法。

0 个答案:

没有答案