Repolode
moby

moby/buildkit

ソースコードをビルド成果物に変換する、並列実行とキャッシュ効率に優れたビルドツールキット。フロントエンド経由でDockerfileをサポートし、Dockerのビルドエンジンとしても使われています。

スター
10,374
フォーク
1,565
未解決の Issue
835
最終コミット
昨日

これは何?

BuildKitは、ソースコードを再現可能な方法でビルド成果物に変換するツールキットです。buildkitdデーモンとbuildctlクライアントで動作し、ビルドはLLBというバイナリの中間形式で記述されます。LLBはビルドステップの依存関係グラフを定義するため、独立したステップを並列実行でき、命令ごとに結果をキャッシュできます。

BuildKitはDockerfileに依存しません。Dockerfileのサポートはフロントエンドによって提供され、YAML、Starlark、Pythonベースの定義など、ほかのビルド言語もフロントエンドとして実装できます。出力先には、コンテナイメージレジストリ、containerdのイメージストア、ローカルディレクトリのほか、Docker、OCI、tar形式のアーカイブがあります。キャッシュは、インラインメタデータ、レジストリ、ローカルディレクトリ、GitHub Actions、S3、Azure Blob Storageを通じてインポート・エクスポートできます。

デーモンはOCI(runc)とcontainerdのワーカーをサポートし、root権限なしでも実行できます。また、UnixソケットまたはmTLSで保護されたTCP経由でgRPC APIを公開できます。Docker BuildxやDocker Engineをはじめ、複数のビルドツールで利用されています。

主な機能

  • 01LLBの依存関係グラフを使った、独立したビルドステップの並列実行
  • 02命令単位のビルドキャッシュ。レジストリ、ローカルディレクトリ、GitHub Actions、S3、Azure Blob Storageとのインポート・エクスポートに対応
  • 03Dockerfileやgatewayベースの外部フロントエンドなど、プラグイン可能なフロントエンド
  • 04イメージレジストリ、containerdストア、ローカルファイル、Docker、OCI、tarなど複数の出力形式
  • 05マルチプラットフォームビルドとrootless実行
  • 06ビルドキャッシュの自動ガベージコレクション

ユースケース

  • LinuxサーバーやKubernetesクラスターで、単独のビルドデーモンを実行する
  • CIパイプラインで、レジストリやS3バケットを通じてキャッシュを共有しながらコンテナイメージをビルドする
  • Dockerfileを使わないワークフロー向けに、LLB上で独自のビルド言語を定義する
  • コンテナイメージではなく、レポートやバイナリなどのローカルビルド成果物を生成する

クイックスタート

  1. 1

    リリースページから最新のバイナリをダウンロードする

  2. 2

    Linuxでrootとしてbuildkitdデーモンを起動する

    sudo buildkitd
  3. 3

    dockerfile.v0フロントエンドを使ってbuildctlでDockerfileをビルドする

    buildctl build --frontend=dockerfile.v0 --local context=. --local dockerfile=.

使う前に知っておきたいこと

  • buildkitdデーモンはLinuxとWindowsでのみ動作し、macOSでは動作しません。
  • 通常、デーモンの起動にはroot権限が必要なため、rootlessでセットアップするには追加の設定が必要です。
  • macOS向けのHomebrew formulaは非公式で、デーモンは含まれていません。

収録されている特集

トピック

よくある質問

buildkit とは?
ソースコードをビルド成果物に変換する、並列実行とキャッシュ効率に優れたビルドツールキット。フロントエンド経由でDockerfileをサポートし、Dockerのビルドエンジンとしても使われています。 BuildKitは、ソースコードを再現可能な方法でビルド成果物に変換するツールキットです。buildkitdデーモンとbuildctlクライアントで動作し、ビルドはLLBというバイナリの中間形式で記述されます。LLBはビルドステップの依存関係グラフを定義するため、独立したステップを並列実行でき、命令ごとに結果をキャッシュできます。
buildkit は無料で使えますか?ライセンスは?
buildkit は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
buildkit は今もメンテナンスされていますか?
活発にメンテナンス中。buildkit の最終コミットは 2026年11月6日 です。
buildkit は何に使えますか?
LinuxサーバーやKubernetesクラスターで、単独のビルドデーモンを実行する CIパイプラインで、レジストリやS3バケットを通じてキャッシュを共有しながらコンテナイメージをビルドする Dockerfileを使わないワークフロー向けに、LLB上で独自のビルド言語を定義する コンテナイメージではなく、レポートやバイナリなどのローカルビルド成果物を生成する
buildkit のインストール方法は?
リリースページから最新のバイナリをダウンロードする Linuxでrootとしてbuildkitdデーモンを起動する: sudo buildkitd dockerfile.v0フロントエンドを使ってbuildctlでDockerfileをビルドする: buildctl build --frontend=dockerfile.v0 --local context=. --local dockerfile=.
buildkit はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/moby/buildkit

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト