Django 在docker compose卷中创建文件夹

Django 在docker compose卷中创建文件夹,django,docker,docker-compose,filesystems,docker-volume,Django,Docker,Docker Compose,Filesystems,Docker Volume,我有一个Django项目,运行docker compose for dev env。 我正在aws服务器(AMI ubuntu bionic)上努力创建文件/文件夹 我在我的后端容器上装载了一个包含项目文件的卷。 在我的本地计算机上,从容器内的django到卷的文件/文件夹创建工作正常。 在服务器上,一切似乎都按预期工作(没有任何错误), 但是当我ls查找我的文件夹/文件时,它们不在那里 这是我的docker-compose.yml文件的后端服务 backend: container

我有一个Django项目,运行docker compose for dev env。 我正在aws服务器(AMI ubuntu bionic)上努力创建文件/文件夹

我在我的后端容器上装载了一个包含项目文件的卷。 在我的本地计算机上,从容器内的django到卷的文件/文件夹创建工作正常。 在服务器上,一切似乎都按预期工作(没有任何错误), 但是当我
ls
查找我的文件夹/文件时,它们不在那里

这是我的docker-compose.yml文件的后端服务

  backend:
    container_name: project_backend_container
    env_file:
      - ../project-backend/set_env.env
    build:
      context: ../project-backend
    command: bash -c "python3 manage.py runserver 0.0.0.0:8000"
    volumes:
      - ../project-backend/project:/code
    ports:
      - "8000:8000"
    depends_on:
      - db
我试图自己调试它,但到目前为止: 当我执行到容器中时,我可以创建文件夹

~/project-backend$ docker exec -it project_backend_container /bin/bash
root@d34b85516a59:/code# mkdir test
root@d34b85516a59:/code# ls
__pycache__  app  manage.py static  test  uploads project
root@d34b85516a59:/code# python manage.py shell
Python 3.7.4 (default, Sep 12 2019, 15:40:15)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> import os
>>> os.makedirs('my/awesome/dirs')
>>>
now exiting InteractiveConsole...
root@d34b85516a59:/code# ls
__pycache__/ app/         manage.py    my/          static/      uploads/

使用django运行shell时,还可以创建文件夹

~/project-backend$ docker exec -it project_backend_container /bin/bash
root@d34b85516a59:/code# mkdir test
root@d34b85516a59:/code# ls
__pycache__  app  manage.py static  test  uploads project
root@d34b85516a59:/code# python manage.py shell
Python 3.7.4 (default, Sep 12 2019, 15:40:15)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> import os
>>> os.makedirs('my/awesome/dirs')
>>>
now exiting InteractiveConsole...
root@d34b85516a59:/code# ls
__pycache__/ app/         manage.py    my/          static/      uploads/

我试图重写django存储类来记录错误,但一切都很顺利。 从django的角度看,一切看起来都很好

我在docker层和卷文件系统管理方面的知识明显不足,但我认为我的问题与它们有关。 是否有人已经遇到了类似的问题,并且知道如何解决,或者至少如何调试它?
谢谢,原来是配置问题! 我的设置在环境文件中使用了媒体根目录的绝对路径。 是在Django项目中保存用户上载文件的目录的文件系统路径


容器中uploads文件夹的路径与env文件中的给定路径不同

这不是一个明确的问题:您谈论的是撰写(没有问题的文件),然后是文件夹创建(不清楚问题是什么),django没有错误。如果有帮助,请使用docker-compose.yml文件的后端服务更新它。Docker compose运行我的应用程序的堆栈,并被提到提供上下文,但问题取决于文件夹和文件的创建。当我通过API上传文件时,django端的一切都很好,但文件夹或文件没有创建。可能是权限问题。检查运行应用程序的用户以及该用户是否具有创建/写入文件夹的权限。