我正在使用 AWS Codebuild 构建 Docker 映像。我最近添加了 buildkit 来使用构建缓存(在此之前,根本没有使用缓存)。我的 buildspec 文件中的构建命令是这样的:
DOCKER_BUILDKIT=1 docker build --build-arg BUILDKIT_INLINE_CACHE=1 [...a lot of build-args] -t $REPOSITORY_URI:latest --cache-from $REPOSITORY_URI:latest .
如果我触发了整个 Codepipeline 的重建,而不更改上次构建的代码,则它对大多数层使用缓存。我通过调查构建日志并找到这样的行看到了这一点#35 CACHED
。但是如果我在构建之前对代码进行任何更改,所有缓存似乎都已失效。我预计只有受更改影响的层以及之后的层必须重建。
我想就如何解决这个问题提出一些建议。