内联缓存

inline 缓存存储后端是获取外部缓存的最简单方法,如果您已经在构建和推送镜像,则易于上手使用。

内联缓存的缺点是它不像其他驱动那样能很好地扩展多阶段构建。它也不提供输出 Artifact 与缓存输出之间的分离。这意味着,如果您正在使用一个特别复杂的构建流程,或者没有直接将镜像导出到 Registry,那么您可能需要考虑 registry 缓存。

概要

$ docker buildx build --push -t <registry>/<image> \
  --cache-to type=inline \
  --cache-from type=registry,ref=<registry>/<image> .

inline 缓存不支持其他参数。

要使用 inline 存储导出缓存,请将 type=inline 传递给 --cache-to 选项

$ docker buildx build --push -t <registry>/<image> \
  --cache-to type=inline .

另外,您还可以通过设置构建参数 BUILDKIT_INLINE_CACHE=1 来导出内联缓存,而不是使用 --cache-to 标志

$ docker buildx build --push -t <registry>/<image> \
  --build-arg BUILDKIT_INLINE_CACHE=1 .

要在未来的构建中导入结果缓存,请将 type=registry 传递给 --cache-from,这允许您从指定 registry 中的 Docker 镜像内部提取缓存

$ docker buildx build --push -t <registry>/<image> \
  --cache-from type=registry,ref=<registry>/<image> .

延伸阅读

有关缓存简介,请参阅 Docker build 缓存

有关 inline 缓存后端的更多信息,请参阅 BuildKit README

页面选项