@RuslanSer

Как можно обезопасить Postgresql от случайного удаления volume с бд в Docker?

В общем есть проект с Django, Postgresql, Docker, и я не очень доверяю Docker.
Можно ли как-то защитить volume с базой данных от случайного удаления (например командой docker-compose down -v) и периодически делать бэкап бд?

Конфиг docker-compose.yml такой::
version: '3.7'

services:
  db:
    restart: always
    image: postgres:12.0-alpine
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    environment:
      - POSTGRES_USER=xxxx
      - POSTGRES_PASSWORD=xxxx
      - POSTGRES_DB=xxxxx
    env_file:
      - ./.env.prod
  web:
    restart: always
    build:
      context: ./
      dockerfile: Dockerfile
    command: >
      sh -c "gunicorn -w 2 -b 0.0.0.0:8000 project.wsgi:application"
    volumes:
      #python manage.py migrate
      #python manage.py collectstatic --noinput &&
      #python manage.py runserver 0.0.0.0:8000
      #- .:/home/app/web
      - static_volume:/home/app/web/static
      - media_volume:/home/app/web/media
    #ports:
    #- '8000:8000'
    expose:
      - 8000
    env_file:
      - ./.env.prod
    depends_on:
      - db
  nginx:
    restart: always
    build: ./nginx
    volumes:
      - static_volume:/home/app/web/static
      - media_volume:/home/app/web/media
    ports:
      - 80:80
    depends_on:
      - web

volumes:
  postgres_data:
  static_volume:
  media_volume:
  • Вопрос задан
  • 218 просмотров
Пригласить эксперта
Ответы на вопрос 2
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Никто и никогда не придумывал ничего более путного чем бэкапы и репликация. А вообще, нечего базу данных засовывать в контейнер
Ответ написан
karabanov
@karabanov Куратор тега Docker
Системный администратор
Сделай bind mounts:
db:
    restart: always
    image: postgres:12.0-alpine
    volumes:
      - /data/postgres_data:/var/lib/postgresql/data/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы