том docker-compose не сохранит данные - PullRequest
0 голосов
/ 13 апреля 2019

Я устанавливаю проект nginx-gunicorn-django- postgres с помощью docker-compose.

У меня есть контейнер с 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-составьте версию: 1.24.0, версию докера: 18.09.2

...