在docker-compose文档的quickstart: Compose and Django页面中,Dockerfile
和docker-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
来附加卷或根据我是创建生产还是开发堆栈来创建它?
答案 0 :(得分:7)
发布此问题后几分钟,我找到了一个页面,其中提供了一些有关如何执行此操作的提示。以下是我认为必须要做的事情:
docker-compose.yml
。但是,在您的Dockerfile
中,您仍然保留原始ADD
或COPY
指令。您还定义了一个production.yml
文件,其中不包含开发和生产系统之间的相似之处。但是,它确实包含您要在生产环境中进行的更改。例如,volumes
部分可能是这样的:
volumes: {}
现在,当你在生产中运行docker-compose
时,你会这样做:
$ docker-compose -f docker-compose.yml -f production.yml up
以下是Using Compose in Production的链接供参考。