gpt4 book ai didi

docker - 在 Dockerfile 中通过 yum 检查更新的包

转载 作者:行者123 更新时间:2023-12-02 18:41:55 24 4
gpt4 key购买 nike

在我的 Dockerfile 中,我可能有一个看起来像这样的步骤来安装一些包。

Run yum install pkg1 pkg2 -y &&\
yum -y clean all

问题是,当我多次构建容器时,Docker 认为这个命令没有改变并且从不运行它。相反,它选择使用以前缓存的图层。

但是,pkg1 或 pkg2 可能已在 yum 存储库中更新并需要更新,并且由于它使用了缓存的 docker 层,因此容器不会接收更新的包。

我可以使用 --no-cache 选项进行构建,但这会使所有缓存层无效,这会大大减慢容器构建速度,因为通常我的 yum install 命令接近我的 Dockerfile 的末尾。

处理这个问题的最佳策略是什么?如果缓存与 repo 中有不同版本的包,是否有任何解决方案仅使 docker 缓存无效?

最佳答案

从“Build cache”,您可以插入 ADDCOPY RUN 之前的指令(一个虚拟文件)命令。

每当您想使下一个 RUN 的缓存失效时,修改dummy文件的内容,ADD/COPY (与 Dockerfile 命令的其余部分一起)不会依赖缓存。

关于docker - 在 Dockerfile 中通过 yum 检查更新的包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35608695/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com