内联缓存

缓存inline存储后端是获取外部缓存的最简单方法,如果您已经在构建和推送图像,则很容易开始使用。

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

概要

$ 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它,以便您从指定注册表中的 Docker 映像中提取缓存:

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

进一步阅读

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

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