在一个项目中包含多个Dockerfile是一种正常做法吗?

在一个项目中包含多个Dockerfile是一种正常做法吗?,docker,Docker,如果我在源代码管理中有一个web项目,并且我希望包含运行该项目所需的所有配置,那么我是否应该使用多个Dockerfile为我的数据库、web和数据容器定义不同的配置文件 有这种做法的例子吗?如果您只更改配置参数,我建议您重用Dockerfile并将配置文件作为参数传递。否,您应该允许在使用卷中装入配置文件,以便可以使用具有不同配置的同一容器,或者设置所有配置,然后允许基于环境变量选择配置文件,或者允许docker运行命令 第一种方法更可取,因为容器定义中没有关于配置的信息。您甚至可以公开您的容器

如果我在源代码管理中有一个web项目,并且我希望包含运行该项目所需的所有配置,那么我是否应该使用多个Dockerfile为我的数据库、web和数据容器定义不同的配置文件


有这种做法的例子吗?

如果您只更改配置参数,我建议您重用Dockerfile并将配置文件作为参数传递。

否,您应该允许在使用卷中装入配置文件,以便可以使用具有不同配置的同一容器,或者设置所有配置,然后允许基于环境变量选择配置文件,或者允许docker运行命令


第一种方法更可取,因为容器定义中没有关于配置的信息。您甚至可以公开您的容器,因为它可能对其他人有用。

它不仅仅是配置。每个docker文件都是一个不同的可执行文件。嗯,不确定本例中的“配置文件”是什么,你能详细说明一下吗?好的,所以我的存储库根目录下的docker文件应该只包含与PHP服务器操作有关的任何内容,而不包含其他内容?答对了。通过将服务和数据/内容/配置分开,这使得它更易于重用。如果您想要更新apache等,您只需构建一个新容器并在那里装载卷。如果您想更改设置,只需更新主机中的文件并重新启动容器。如果我的应用程序本身具有不同的可运行可执行文件,情况如何?如果我的dockerfile正在运行一个守护进程,则将其限制为一个可执行文件。实际上,我应该能够运行workers和我框架的其他命令行UTIL?实际上,这是没有限制的,只要每个docker文件都在自己的文件夹中,您就可以为所有docker文件设置自动构建,即使是通过官方dockerhubLet us。