Dockerfile的FROM指令

9

Dockerfile参考中关于FROM指令的说明如下:

FROM可以在单个Dockerfile中出现多次,以创建多个镜像。只需在每个新的FROM命令之前记录提交输出的最后一个镜像ID。

我不明白他们所说的“记录提交输出的最后一个镜像ID”的意思。我真的不确定有多个FROM指令的意义何在。

这有什么有效的用例吗?

1个回答

8
#Note: image1 and image2 can be same

FROM image1
.. any commands for image1
FROM image2
.. any commands for image2

它将创建两个镜像。在构建后,它将返回最新的镜像ID(正如文档所述)。因此,这种用法是可行的(我还没有看到过这种用法),但在我看来,它只适用于特殊情况。构建两个不同的镜像并达到第一个镜像ID似乎并不是一个好的用法。
也许您的要求是构建大规模应用程序并能够一次性构建。因此,这取决于您的需求。您真的需要这种用法吗?这是主要问题。

2
是的,由于在“FROM image1”这个基础镜像上构建时标记图像需要通过构建输出来查找ID以进行标记,我想不到有什么用例可以使用这种方法。最好还是创建多个Dockerfiles。 - BMitch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接