能否让Dockerfile中的FROM指令拉出最新的镜像?

问题描述 投票:0回答:1

我想知道,是否可以在Docker文件中,让一个 FROM 指令在Docker文件中拉出最新的镜像(如 image:latest),然后再进行构建?

目前,只有当镜像还没有存储在本地时,才会被拉取。

docker kubernetes dockerfile cloud docker-registry
1个回答
5
投票

docker build --pull OTHER_OPTIONS PATH

https:/docs.docker.comenginereferencecommandlinebuild。

--pull      Always attempt to pull a newer version of the image

虽然在开发过程中可能会有真正的使用案例,但我强烈建议不要在生产构建中依赖这个选项。Docker镜像必须是不可改变的。使用这个选项可能会导致从相同的源代码中生成不同的镜像,任何行为的变化都很难调试。

假设有一个名为 "派生项目 "的项目,它使用的是基础镜像 myBaseImage:latest

FROM myBaseImage:latest

<snipped>

CMD xyz
docker build --pull -t myDerivedImage:<version of source code> .

假设派生图像的标签是基于它的源代码版本(例如git commit hash),这是最常见的标记图像的方式,如果在派生项目没有变化的情况下,发布了最新标签下的新的基础图像,那么派生项目的构建就会在基础图像变化前后产生相同名称下的不同图像。镜像一旦以某个名称发布,就不应该被突变。


1
投票

为了通过更新基础镜像来构建docker镜像,你必须使用选项。

--pull

我把官方文档留给你,其中讨论了这个选项和更多的内容。官方docker文档

© www.soinside.com 2019 - 2024. All rights reserved.