Dockerfile是否必须始终放置在生成上下文根目录中?

Dockerfile是否必须始终放置在生成上下文根目录中?,docker,dockerfile,Docker,Dockerfile,假设我有一个Django项目,想要创建几个DockerFile,它们将使用不同的设置集和系统包(不要与Python库混淆)。 为了让应用程序运行,我必须将完整的项目代码库复制到映像中 现在我看到了这一点,它启发我将每个单独的Dockerfile放到项目根目录中自己的目录中 docker build env1/可预见地创建一个env1的tarball,并使用它来构建图像 是否有任何方法可以重新定义Dockerfile名称或生成上下文根?引入了一个选项“指定要在生成中使用的Dockerfile”:

假设我有一个Django项目,想要创建几个DockerFile,它们将使用不同的设置集和系统包(不要与Python库混淆)。 为了让应用程序运行,我必须将完整的项目代码库复制到映像中

现在我看到了这一点,它启发我将每个单独的Dockerfile放到项目根目录中自己的目录中

docker build env1/
可预见地创建一个
env1
的tarball,并使用它来构建图像

是否有任何方法可以重新定义Dockerfile名称或生成上下文根?

引入了一个选项“指定要在生成中使用的Dockerfile”:

指定要在生成中使用的Dockerfile

投稿人:道格·戴维斯-公共关系链接

这可能是过去几年中要求最多的功能之一 月份:指定要在docker生成中使用的文件的功能 而不是依赖默认的Dockerfile。docker构建-f允许 您可以在单个项目中定义多个DockerFile并指定 在构建时使用哪一个。如果您需要,这会很有帮助 用于测试和生产环境的单独DockerFile

使用此功能,您不需要为多个Dockerfile设置单独的文件夹,因此不再需要为每个Dockerfile设置不同的文件夹。只需在根文件夹中包含多个DockerFile,并使用
-f
选项构建每个DockerFile即可