在 docker-compose 卷中创建文件夹
Folder creation in docker-compose volume
我有一个 Django 项目 运行 docker-compose for dev env。
我正在努力在 aws 服务器上创建 file/folder (AMI ubuntu-bionic)
我用项目文件在 backend_container 上安装了一个卷。
在我的本地计算机上,file/folder 从容器内的 django 到卷的创建工作正常。
在服务器上,一切似乎都按预期工作(没有任何错误),
但是当我 ls
找到我的 folders/files 时,他们不在那里。
这里是我的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 存储 class 来记录错误,但一切正常。
从 django 方面来看,一切看起来都很好。
我对卷的 docker 层和文件系统管理的知识显然不足,但我认为我的问题与它们有关。
是否有人已经遇到过类似的问题并且知道如何解决或至少调试它?
谢谢
原来是配置问题!
我的设置是在环境文件中使用 MEDIA_ROOT 的绝对路径。
MEDIA_ROOT 是 Django 项目中保存用户上传文件的目录的文件系统路径。
容器中上传文件夹的路径与 env 文件中给定的路径不同。
我有一个 Django 项目 运行 docker-compose for dev env。 我正在努力在 aws 服务器上创建 file/folder (AMI ubuntu-bionic)
我用项目文件在 backend_container 上安装了一个卷。
在我的本地计算机上,file/folder 从容器内的 django 到卷的创建工作正常。
在服务器上,一切似乎都按预期工作(没有任何错误),
但是当我 ls
找到我的 folders/files 时,他们不在那里。
这里是我的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 存储 class 来记录错误,但一切正常。 从 django 方面来看,一切看起来都很好。
我对卷的 docker 层和文件系统管理的知识显然不足,但我认为我的问题与它们有关。 是否有人已经遇到过类似的问题并且知道如何解决或至少调试它? 谢谢
原来是配置问题! 我的设置是在环境文件中使用 MEDIA_ROOT 的绝对路径。 MEDIA_ROOT 是 Django 项目中保存用户上传文件的目录的文件系统路径。
容器中上传文件夹的路径与 env 文件中给定的路径不同。