我正在将Django cookiecutter与docker和docker-compose一起使用。
在生产中,我使用dj-static来提供媒体文件。
每当我使用“docker-compose down”命令时,媒体卷中的所有内容都会被删除。我认为这是该命令的预期结果,但保留了“postgreSQL”中的所有内容。
如何使用“媒体”量来做到这一点?
最佳答案
我设法完成了这项工作。
在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,并收到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
关于django - 带有docker-compose的Django应用将数据保留在媒体卷中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45035387/