如何仅在开发环境中使用docker-compose附加卷?

Par*_*dar 4 docker docker-compose

快速入门: Docker-compose文档中的Compose和Django页面中,Dockerfiledocker-compose.yml文件都添加./code,如下所示:

ADD . /code/

几行之后:

web: build: . command: python manage.py runserver 0.0.0.0:8000 volumes: - .:/code

我猜这是这样做的时候在发展,你不会经常要重建图像,以及使用时docker build的图像是建立与源代码已经内部,使得在生产,你可以简单地做docker run得到容器了.那是对的吗?

如果是这样,问题是,我如何docker-compose.yml根据我是创建生产还是开发堆栈创建一个附加卷或不执行它?

Par*_*dar 7

发布此问题后几分钟,我找到了一个页面,其中提供了一些有关如何执行此操作的提示.以下是我认为必须要做的事情:

  1. 您定义了一个docker-compose.yml附加卷的卷.但是,在Dockerfile你仍然保留原件ADDCOPY指令.
  2. 您还定义了一个production.yml不包含开发和生产系统之间相似性的文件.但是,它确实包含您要在生产环境中进行的更改.例如,该volumes部分可能是这样的:

    volumes: {}

现在,当你docker-compose在生产中运行时,你会这样做:

$ docker-compose -f docker-compose.yml -f production.yml up

以下是使用生产中的Compose作为参考的链接.