假设我有一个Django项目并希望创建几个Dockerfiles,它们将使用不同的设置和系统包(不要与Python库混淆)。 要运行应用程序,我必须将完整的项目代码库复制到映像。
现在我看到了Setting up a docker / fig Mesos environment,它启发我将每个单独的Dockerfile放入项目根目录中的自己的目录中。
docker build env1/
可预测地创建env1
的tarball并使用它来构建图像。
有什么方法可以重新定义Dockerfile名称或构建上下文根目录吗?
答案 0 :(得分:6)
Docker 1.5引入了“指定要在构建中使用的Dockerfile”的选项:
指定要在构建
中使用的Dockerfile供稿人:Doug Davis - PR的链接
这可能是过去几年中最受欢迎的功能之一 months:能够指定要在docker构建中使用的文件 而不是依赖于默认的Dockerfile。 docker build -f允许 您可以在单个项目中定义多个Dockerfiles并指定 哪一个在构建时使用。如果您需要,这可能会有所帮助 用于测试和生产环境的独立Dockerfiles。
使用此功能,您不需要为多个Dockerfiles分隔文件夹,因此不再需要为每个Dockerfile提供不同的文件夹。只需在根文件夹中有多个Dockerfiles,并使用-f
选项构建每个Dockerfiles。