内联缓存

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

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自述文件