3

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

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

该文件归所有人所有,root:root因此我最初对主机文件系统没有写权限。我仍在学习 docker-compose 并且正在努力寻找将chown任何创建的文件返回给本地用户的最整洁的方法。

我确实尝试user:在 dev.yml 中的 django 服务中设置标志,就像这样..

  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。

4

0 回答 0