当前,我在本地和产品中都使用docker-compose。 我的docker-compose的卷路径与生产环境不同。
我的Dockerfile在环境之间也有所不同。
有没有一种方法可以使每个文件具有不同的版本?我应该如何命名文件才能在不同的环境中工作?
如果我这样做:
Dockerfile.local Dockerfile.prod
如何从docker-compose.yml文件中引用它们? 我可以以某种方式拥有多个docker-compose文件吗?
答案 0 :(得分:1)
使用Docker的最佳实践之一是,无论环境如何,都应使用完全相同的Dockerfile。 环境变量和cli工具(例如cli)应该是弥补每种环境之间“差距”的有用工具。
无论如何,作为一种解决方法,docker-compose命令具有-f
选项,该选项会覆盖要加载的文件。也许您可以创建docker-compose.dev.yaml
和docker-compose.prd.yaml
,然后可以将docker-compose build -f docker-compose.dev.yaml
用于开发,将docker-compose build -f docker-compose.prd.yaml
用于生产。