Docker基础——BuildKit构建引擎介绍

BuildKit是Docker桌面版和Docker引擎v23版之后的默认image构建器,对比之前的构建器它提供了很多新的功能并且大大的提升了性能,并且引入了一下复杂场景的支持:
探测并且跳过执行无用构建步骤
并行构建独立的层
在两次镜像构建之间只增量转化变更的文件
探测并跳过转化无用的构建文件转化
避免其余API对性能的影响(中间镜像、容器)
优先自动修剪构建缓存
BuildKit的核心是Low-Level Build (LLB)定义额格式,LLB是一种中间二进制格式允许开发人员拓展BuildKit。LLB定义了一个内容可寻址的依赖关系图,可用于将非常复杂的构建定义组合在一起,他还在Dockerfile中支持未公开的特性比如直接数据挂载和嵌套调用。
所有和构建镜像有关的执行、缓存都定义在LLB中,LLB可以直接使用Go语言客户端包生成,该客户端包允许使用Go语言原语定义构建操作之间的关系。