Я использую docker-compose
для разработки django проекта с postgres
дБ.
Используя VS Code, я запускаю два докера после Docker Compose Up
.
Каждый Когда я работаю над проектом, БД не повреждена
Проблема в том, что при внесении каких-либо изменений в requirements.txt
изображение БД сбрасывается, даже если в это изображение не было внесено никаких изменений. * Я должен запустить python manage.py migrate
и createsuperuser
, а база данных пуста.
Я могу понять, что образ web
docker должен быть воссоздан, когда есть изменения в requirements.txt
, но почему сбрасывает ли изображение БД?
Есть ли способ избежать этого? Я бы не хотел публиковать sh производственное приложение и не иметь возможности устанавливать дополнительные библиотеки в более новых версиях без потери БД.
docker-compose.yml
:
version: '3'
services:
db:
image: postgres
environment:
POSTGRES_USER: 'aaa'
POSTGRES_PASSWORD: 'bbb'
POSTGRES_DB: 'ccc'
web:
build: .
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
stdin_open: true
tty: true
Dockerfile
:
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/
settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'ccc',
'USER': 'aaa',
'PASSWORD': 'bbb',
'HOST': 'db',
'PORT': 5432,
}
}