内联缓存

inline 缓存存储后端是最简单的方式来获取外部缓存, 如果您已经在构建并推送镜像,那么使用它将非常容易上手。

内联缓存的缺点是它在多阶段构建方面的扩展性不如其他驱动程序。它也没有在输出构件和缓存输出之间提供分离。这意味着如果你使用的是特别复杂的构建流程,或者没有直接将镜像导出到注册表,那么你可能需要考虑使用 注册表 缓存。

概述

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

不支持为inline缓存添加额外参数。

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

$ 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,这允许您从指定注册表中的 Docker 镜像内提取缓存:

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

进一步阅读

有关缓存的介绍,请参阅 Docker 构建缓存

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