我是Docker的新手,正在使用docker-compose文件创建一个多容器应用程序,该文件包括Postgres数据库和Django / Wagtail应用程序。我了解批量备份/还原写入数据库的数据的概念。 但是,我在掌握如何保留静态文件,应用程序配置文件等内容的选项时遇到了麻烦。简单地说,一旦我运行了初始的Docker容器并更改了数据库模型,进行了迁移并创建了模板(例如)-如何我使此内容可用,以便可以运行反映当前状态的应用程序的新创建的图像?我应该在dockerfile中使用COPY还是ADD,还是在docker-compose.yml中引用这些文件的卷?这是docker-compose.yml和dockerfile,这是从Dockerhub映像和相应的Github构建指令获取的起点。 https://github.com/fffunction/setting-up-wagtail-with-docker
dockerfile
FROM python:3.4
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY requirements.txt /usr/src/app/
RUN pip install --no-cache-dir -r requirements.txt
ENV PYTHONUNBUFFERED 1
ENV PYTHONDONTWRITEBYTECODE 1
ENV LANG en_US.UTF-8
ENV PYTHONIOENCODING utf_8
docker-compose.yml
web:
build: .
dockerfile: .dockerfile
command: python manage.py runserver 0.0.0.0:80
volumes:
- ./:/usr/src/app
links:
- postgres
- elasticsearch
ports:
- "80:80"
environment:
- DEBUG=True
- DEV=True
- DATABASE_URL=postgres://postgres:@postgres:5432/postgres
- ELASTICSEARCH_URL=http://elasticsearch:9200
- SECRET_KEY=notasecretreplaceme
postgres:
image: postgres
ports:
- "5432:5432"
elasticsearch:
image: orchardup/elasticsearch
ports:
- "9200:9200"