[英]Django app with docker-compose keep the data in media volume
[英]docker-compose volume won't persist data
我正在使用 docker-compose 設置一個 nginx-gunicorn-django- postgres項目。
我有一個帶有 postgres 的容器,我想讓我的數據持久化。 例如,當我執行docker-compose ... start/stop/up/down
我希望數據庫仍然存在。 我已經讀過我應該像在我的 production.yaml 中一樣為此目的使用卷:
version: '3.7'
services:
web:
build:
context: .
dockerfile: docker-compose/django/Dockerfile
command: gunicorn config.wsgi:application --bind 0.0.0.0:8000
volumes:
- static_volume:/usr/src/app/staticfiles
- media_volume:/usr/src/app/mediafiles
expose:
- 8000
environment:
- SECRET_KEY=please_change_me
- SQL_ENGINE=django.db.backends.postgresql
- SQL_DATABASE=postgres
- SQL_USER=postgres
- SQL_PASSWORD=postgres
- SQL_HOST=db
- SQL_PORT=5432
depends_on:
- db
db:
image: postgres:10.5
restart: always
volumes:
- /home/username/postgres_data:/var/lib/postgresql/data
nginx:
build: ./docker-compose/nginx
volumes:
- static_volume:/usr/src/app/staticfiles
- media_volume:/usr/src/app/mediafiles
ports:
- 80:80
depends_on:
- web
volumes:
static_volume:
media_volume:
問題是,每當我執行docker-compose -f production.yaml stop
然后再次啟動時,除了遷移之外,數據庫是空的 :(。我不知道如何解決這個問題。我猜容器可能沒有沒有寫入卷的權限?另一方面,當我第一次啟動容器時,一切都運行良好,一切都在數據庫中等等。只有在docker-compose ... stop/down
數據庫正在消失(再次遷移仍然存在)。
我在這里缺少什么?
docker-compose 版本:1.24.0,docker 版本:18.09.2
我想在評論中為@marke 提供更多的可見性,但完全歸功於它。 我遇到的問題是我正在刷新入口點中的數據庫。 在 Django 中,我正在運行python manage.py flush
來重置數據庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.