我正在使用dbdocker-compose开发一个 django 项目。postgres
使用 VS Code,我得到了两个在Docker Compose Up.
每次我在项目上工作时,数据库都是完整的
问题是当对 进行任何更改时requirements.txt,数据库映像会重置,即使该映像未进行任何更改。
我必须运行python manage.py migrate并且createsuperuser数据库是空的。
我可以理解,web当对 进行更改时,必须重新创建 docker 映像requirements.txt,但是为什么 db 映像会重置?
有没有办法避免这种情况?我讨厌发布生产应用程序,并且无法在不丢失数据库的情况下在较新版本中安装其他库。
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,
}
}