我正在构建最终容器的两个变体:完整版和精简版。这两个变体都有两个步骤来构建它们的容器:
1. 获取完整版/精简版的所有要求,并制作一个基本的完整版/精简版容器。 2. 在完整版/精简版基础容器上安装应用程序并生成最终的完整版/精简版容器。
两个版本的第二个步骤是相同的,只是使用不同的基础容器。我想将第二个步骤概括为单个Dockerfile,这样我就不必拥有两个包含相同内容但FROM字段不同的Dockerfiles了。
因此,我想知道将最后一步作为单个Dockerfile的最佳方法是什么,使其可以生成2个镜像并在2个不同的FROM之间切换。我考虑了几种不同的方法:
- 使用Dockerfile.template和bash从模板生成2个特定的Dockerfiles。 - 有3个不同的文件。共同逻辑文件和2个独特的Dockerfiles,用于完整版/精简版安装,其中包括共同逻辑文件。 - Dockerfile支持多个FROM,但对我来说似乎满足略有不同的需求(所有谷歌搜索都表明如此)。
但我想知道,是否有更好的方法?或者我错过了什么?
1. 获取完整版/精简版的所有要求,并制作一个基本的完整版/精简版容器。 2. 在完整版/精简版基础容器上安装应用程序并生成最终的完整版/精简版容器。
两个版本的第二个步骤是相同的,只是使用不同的基础容器。我想将第二个步骤概括为单个Dockerfile,这样我就不必拥有两个包含相同内容但FROM字段不同的Dockerfiles了。
因此,我想知道将最后一步作为单个Dockerfile的最佳方法是什么,使其可以生成2个镜像并在2个不同的FROM之间切换。我考虑了几种不同的方法:
- 使用Dockerfile.template和bash从模板生成2个特定的Dockerfiles。 - 有3个不同的文件。共同逻辑文件和2个独特的Dockerfiles,用于完整版/精简版安装,其中包括共同逻辑文件。 - Dockerfile支持多个FROM,但对我来说似乎满足略有不同的需求(所有谷歌搜索都表明如此)。
但我想知道,是否有更好的方法?或者我错过了什么?