在 quickstart: Compose and Django docker-compose 文档中的页面,都是 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
根据我是在创建生产堆栈还是开发堆栈,是附加卷还是不附加卷?
最佳答案
发布这个问题几分钟后,我发现了一个页面,上面有一些关于如何做到这一点的提示。这是我认为必须完成的方式:
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的链接以供引用。
关于docker - 如何仅在开发环境中使用 docker-compose 附加卷?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36956915/