带有docker-compose的Django应用将数据保留在媒体卷中 [英] Django app with docker-compose keep the data in media volume

查看:77
本文介绍了带有docker-compose的Django应用将数据保留在媒体卷中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将Django cookiecutter与docker和docker-compose一起使用。

I'm using Django cookiecutter with docker and docker-compose.

在生产中,我使用dj-static来提供媒体文件。

On production I'm using dj-static to serve my media files.

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

Whenever I use 'docker-compose down' command everything that is in my media volume gets deleted. I think this is the expected outcome of that command but everything that is in 'postgreSQL' is kept.

如何使用 media卷来做到这一点? p>

How can I do that with the 'media' volume?

推荐答案

我设法完成了这项工作。

I've managed to make this work.

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

In the docker-compose.yml I've added:

volumes:
  media: {}

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

在compose / django Dockerfile中,我添加了:

In the compose/django Dockerfile I've added:

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

在此更改之后,我已经运行docker-compose build,docker-compose up并出现500错误。要通过此操作(如果您尚未修改django cookiecutter的默认设置):

After this changes I've run docker-compose build, docker-compose up and got a 500 error. To pass this (if you haven't modified django cookiecutter's default settings):

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

这篇关于带有docker-compose的Django应用将数据保留在媒体卷中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆