我想知道,是否可以在Docker文件中,让一个 FROM
指令在Docker文件中拉出最新的镜像(如 image:latest
),然后再进行构建?
目前,只有当镜像还没有存储在本地时,才会被拉取。
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),这是最常见的标记图像的方式,如果在派生项目没有变化的情况下,发布了最新标签下的新的基础图像,那么派生项目的构建就会在基础图像变化前后产生相同名称下的不同图像。镜像一旦以某个名称发布,就不应该被突变。