Docker基礎(chǔ)——BuildKit構(gòu)建引擎介紹
2023-08-24 15:59 作者:沒用軟件開發(fā)日記 | 我要投稿

? ? BuildKit是Docker桌面版和Docker引擎v23版之后的默認(rèn)image構(gòu)建器,對比之前的構(gòu)建器它提供了很多新的功能并且大大的提升了性能,并且引入了一下復(fù)雜場景的支持:
探測并且跳過執(zhí)行無用構(gòu)建步驟
并行構(gòu)建獨立的層
在兩次鏡像構(gòu)建之間只增量轉(zhuǎn)化變更的文件
探測并跳過轉(zhuǎn)化無用的構(gòu)建文件轉(zhuǎn)化
避免其余API對性能的影響(中間鏡像、容器)
優(yōu)先自動修剪構(gòu)建緩存
????BuildKit的核心是Low-Level Build (LLB)定義額格式,LLB是一種中間二進(jìn)制格式允許開發(fā)人員拓展BuildKit。LLB定義了一個內(nèi)容可尋址的依賴關(guān)系圖,可用于將非常復(fù)雜的構(gòu)建定義組合在一起,他還在Dockerfile中支持未公開的特性比如直接數(shù)據(jù)掛載和嵌套調(diào)用。
????所有和構(gòu)建鏡像有關(guān)的執(zhí)行、緩存都定義在LLB中,LLB可以直接使用Go語言客戶端包生成,該客戶端包允許使用Go語言原語定義構(gòu)建操作之間的關(guān)系。
標(biāo)簽:Docker