在docker-compose卷中创建文件夹

问题描述 投票:-1回答:1

我有一个运行docker-compose的Django项目,用于开发环境。我正在aws服务器(AMI ubuntu-bionic)上创建文件/文件夹的过程中苦苦挣扎]

我通过项目文件在backend_container上安装了一个卷。在我的本地计算机上,从容器内的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

当我使用Django运行Shell时,我也可以创建文件夹

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 docker docker-compose filesystems docker-volume
1个回答
0
投票

原来是配置问题!我的设置在环境文件中使用MEDIA_ROOT的绝对路径。MEDIA_ROOT是目录的文件系统路径,该目录将保存Django项目中用户上传的文件。

容器中上载文件夹的路径与env文件中的给定路径不同。

© www.soinside.com 2019 - 2024. All rights reserved.