#3340·kaniko

WORKDIR 隐式创建的层未被缓存

作者: mzihlmann创建于 2024年10月11日更新于 2025年5月31日

** 实际行为** 当`WORKDIR ' 被调用一个不存在的目录时,kaniko就足够为您创建该目录,从而增加了一层。 然而,kaniko没有缓存该层,这意味着每次引用时,一个全新的图像都会从该点开始被放出. 在同一阶段里,这是不明显的,因为缓存机制仍在拉动,所以你得到100%的缓存命中率,但图像是全新的。 在依赖于新发出图像的多阶段构建或构建中,这是灾难性的,因为他们在判断缓存是否被击中时会考虑整个图像的sha,因此这将使整个缓存失效.

工作很简单,但很傻,我们只需要先确保目录存在,然后再叫`WORKDIR'

  • *%docker文件 运行 mkdir / 应用 工作设计/应用

** 预期行为**

当“WORKDIR”被调用到一个不存在的目录上时,该目录被隐含地创建了**,由此产生的层被推入缓存**。


** 废除**

* *%docker文件
从ubuntu:最晚
工作设计/应用
运行回声"随便"

运行此构建多次, 有缓存, 并观察层每次变化

贝壳 Docker 检查"图像"



** 为维护者编写的旅行说明**
感谢您的开场白!
我们正竭尽全力去解决这个问题。 请帮助我们优先处理你的问题,将下面一节填上: "


** 说明** ** 是/否** * *
|----------.
请检查access-date=中的日期值 (帮助) 请检查access-date=中的日期值 (帮助) 请检查access-date=中的日期值 (帮助)
请检查archive-date=中的日期值 (帮助) Docker的建设工程是否在kaniko. . <ul><li>- [ ] </li></ul>|.
请检查access-date=中的日期值 (帮助) 请检查access-date=中的日期值 (帮助) 当您使用"-cache" 旗号时是否看到此错误 {> < ul><li>- [ ] </li></ul>|>
请检查access-date=中的日期值 (帮助) 请检查access-date=中的日期值 (帮助) 页面存档备份,存于互联网档案馆

内容来源: GoogleContainerTools/kaniko