带有docker-compose的Django应用将数据保留在媒体卷中 [英] Django app with docker-compose keep the data in media volume
问题描述
我将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屋!