如何将应用程序配置文件和内容持久存储在Docker容器中

时间:2018-11-24 02:32:22

标签: docker docker-compose dockerfile

我是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"

0 个答案:

没有答案