在多阶段构建的支持下,将存储库维护到一定程度变得很方便。但是如何扩展这些存储库?
到目前为止,您可以使用--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
等,但我无法使其正常工作。
答案 0 :(得分:0)
根据设计,这是不可能的。多阶段构建的一个优势是隐藏了中间阶段,例如可以在第一阶段下载带有硬编码凭据的内容,然后在第二阶段从中复制结果。最终图像(如dockerhub上可用)表面上是单阶段构建的。大多数时候您都不必担心,因为最后阶段已经从以前的步骤中获得了所有有用的东西。