Closed1

BuildKit

yagi_engyagi_eng

全部引用

BuildKitとは

https://qiita.com/tatsurou313/items/ad86da1bb9e8e570b6fa

BuildKit とはビルドツールキットです。
ソースコードを変換して効率的で表現力豊かで再現可能な方法で成果物を構築することが出来ます。

以下の特徴があります。(参考)

  • 自動ガベージコレクション
  • フロントエンドフォーマットの拡張
  • 並列的な依存関係の解決
  • 効率的な命令キャッシュ
  • ビルドキャッシュのインポート/エクスポート
  • ネストされたビルドジョブの呼び出し
  • 分散ワーカー
  • 複数のアウトプットフォーマット
  • プラガブルなアーキテクチャ
  • 管理者権限が不要な実行

BuildKit は moby プロジェクトが作成したビルドツールキットであり、Docker とは独立しているプロジェクトで開発されたものです。

Docker や Docker Compose で正式に利用できるようになりつつあるため、しばしば Docker の新しいビルド機能として紹介されています。

build context

https://tech.plaid.co.jp/improve_docker_build_efficiency/

docker build実行時にClientからDaemonにBuild Contextとして指定したディレクトリをtarでまとめて転送する、という動作があります。
Build Contextは、dockerコマンド実行位置か引数で指定したディレクトリ、docker-composeならcontextで指定したディレクトリになります。

BuildKitを使うとbuild contextが差分転送になる

https://tech.plaid.co.jp/improve_docker_build_efficiency/

新たなdocker buildとして開発されたツールである、 Buildkit を利用する事でさらなる高速化が行える可能性があります。

  • stage間の依存関係を解析しビルド処理を並列化
  • cacheやsecret用のmount機能があり、各種パッケージマネージャのキャッシュや秘密鍵等をLayerに含めずにビルドに組み込む事ができる
  • build contextが差分転送になる
  • Rootless mode (Experimental)

など様々な面でdocker buildからパワーアップしたツールです。

このスクラップは2022/01/10にクローズされました