在docker hub上扩展多阶段构建映像的阶段

时间:2018-11-27 07:41:55

标签: docker dockerfile docker-multi-stage-build

在多阶段构建的支持下,将存储库维护到一定程度变得很方便。但是如何扩展这些存储库?

到目前为止,您可以使用--target命令中的docker build构建特定标签的图像。

在docker-compose中,您可以使用target条目中的context条目进行指定。

就我而言,我想使用来自docker hub的图像并扩展特定目标。 现在,我正在使用具有

的Dockerfile(我从docker-compose调用,但这没关系)
FROM repo/sample-name
DO my stuff

该仓库在其名为sample-name的Dockerfile中有3个目标,其中sample-name-full扩展了sample-name,而sample-name-dev扩展了sample-name-full。这些名称中的破折号就像存储库称为目标一样。

似乎正在发生的事情是,我将第一个目标作为构建目标(或者我认为是),该目标以仓库本身命名。假设我如何扩展中间目标?

我尝试过类似的东西

FROM repo/sample-name:latest-sample-name-dev

等,但我无法使其正常工作。

1 个答案:

答案 0 :(得分:0)

根据设计,这是不可能的。多阶段构建的一个优势是隐藏了中间阶段,例如可以在第一阶段下载带有硬编码凭据的内容,然后在第二阶段从中复制结果。最终图像(如dockerhub上可用)表面上是单阶段构建的。大多数时候您都不必担心,因为最后阶段已经从以前的步骤中获得了所有有用的东西。