【问题标题】:Cache issue when building a multi-stage image with kaniko使用 kaniko 构建多阶段图像时的缓存问题
【发布时间】:2021-08-27 14:22:25
【问题描述】:

我已经使用 kaniko(版本 v1.6.0-debug)在 kubernetes 中设置了容器镜像构建,但是在启用缓存(/kaniko/executor --cache --cache-repo $CI_REGISTRY_IMAGE/cache)时我最终遇到了以下问题。

这是一个解释问题的简化 Dockerfile(真正的有一个 PHP package.jsonpackage.lock 文件,其中添加了新要求)。

FROM busybox:1.33.1 AS builder
WORKDIR /root
COPY testfile testfile

FROM busybox:1.33.1 AS release
WORKDIR /root
COPY --from=builder /root/testfile testfile
RUN cat /root/testfile

如果修改了testfile,并且之前构建了 docker 映像(因此它的所有层都缓存在 docker 注册表中),则 kaniko 看不到任何修改并将缓存层用于

COPY --from=builder /root/testfile testfile

结果是最终的 docker 映像提供了文件 testfile 的旧(缓存)版本,而不是最后一个。

知道如何解决/缓解这个问题吗?当然,如果我从我们的 docker 存储库中删除缓存层,图像会正确构建,但禁用缓存对我来说不是一个选项,因为构建会太慢。

【问题讨论】:

    标签: caching docker-multi-stage-build kaniko


    【解决方案1】:

    升级到 Kaniko 1.7.0 可能会解决您的问题:https://github.com/GoogleContainerTools/kaniko/pull/1735

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-16
      • 2019-09-27
      • 2019-03-12
      • 2020-09-10
      • 1970-01-01
      • 2019-03-09
      • 2022-08-18
      • 2020-06-05
      相关资源
      最近更新 更多