使用docker-compose的Django应用程序将数据保存在媒体卷中

我用docker和docker-compose来使用Django的cookiecutter。

在制作中,我使用dj-static来为我的媒体文件提供服务。

每当我使用“docker-compose down”命令时,我的介质卷中的所有内容都将被删除。 我认为这是该命令的预期结果,但是在'postgreSQL'中的所有内容都保留下来。

我怎样才能用“媒体”的数量呢?

你应该包括额外的卷来保存你的媒体文件夹:

- /path/to/store/on/host:/path/to/mediafiles 

我设法做这个工作。

在docker-compose.yml中我添加了:

 volumes: media: {} django: .... volumes: - media:/app/project-name/same-path-as-MEDIA_URL 

在我添加的compose / django Dockerfile中:

 VOLUME /app/PROJECT_NAME/same-path-as-MEDIA_URL 

在这个更改之后,我运行了docker-compose build,docker-compose up并得到了500错误。 要传递这个(如果你还没有修改django cookiecutter的默认设置):

 docker ps - here you'll get your django container id docker exec -u root THE_CONTAINER_ID chown django:user PROJECT_NAME/same-path-as-MEDIA_URL