在 docker 集线器上扩展多阶段构建图像的阶段

Extend a stage of Multi-stage built image on docker hub

有了多阶段构建的支持,维护repos up to point变得方便了。但是如何扩展这些存储库?

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

从docker-compose,可以在context条目中使用target条目来指定。

就我而言,我想使用来自 docker hub 的图像并扩展特定目标。 现在,我正在使用一个 Dockerfile(我从 docker-compose 调用它,但这不重要)它有

FROM repo/sample-name
DO my stuff

那个 repo 在他们的 Dockerfile 中有 3 个目标,名为 sample-name,扩展 sample-namesample-name-full 和扩展 sample-name-fullsample-name-dev。这些名称中的破折号就像 repo 命名它们的目标一样。

似乎正在发生的事情是,我将第一个目标作为构建目标(或者我认为是),它以 repo 本身命名。我怎样才能扩展中间目标?

我试过

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

等等,但我无法让它工作。

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