Dalec
Dalec は Docker BuildKit のフロントエンドであり、1 枚の宣言的 YAML spec から、ネイティブな RPM/DEB パッケージと、署名・SBOM 付きの最小コンテナを、Docker だけでビルドする。
- カテゴリ: Supply Chain
- CNCF 成熟度: Sandbox (2025-10-08 採択)
- 言語: Go (
go 1.25.9) - ライセンス: Apache-2.0
- リポジトリ: project-dalec/dalec
- ドキュメント基準コミット:
0d888c2(main, 2026-06-26, タグv0.21.2の近傍)
何をするものか
Dalec は Docker BuildKit のビルドフロントエンドである。BuildKit は現代の Docker の内部にあるビルドエンジンで、LLB (Low-Level Build、BuildKit の中間表現) と呼ばれるグラフを解決してビルドを進める。フロントエンドとは、ビルド定義を読み取り、その LLB グラフを出力するプログラムのことである。Dockerfile はビルトインのフロントエンドが扱うそうした定義の 1 つだ。Dalec はそれとは別のフロントエンドを提供する。Dockerfile の代わりに、1 枚の YAML spec を読む。
その 1 枚の spec から、Dalec は一連の流れをすべて実行する。ソースを取得し、ビルドし、ネイティブな Linux パッケージ (Azure Linux・AlmaLinux・Rocky Linux 向けの RPM、Debian・Ubuntu 向けの DEB) を生成し、それに対してテストを走らせ、そのパッケージを入れた最小コンテナイメージを組み立てる。パッケージへの署名や、SBOM・provenance の attestation 付与も可能だ。利用者に必要なのは docker build だけである。別建てのビルドサーバも、ホスト上の rpmbuild や dpkg も、自前のシェルスクリプトも要らない。
Dalec は Microsoft の Azure Upstream チームから生まれた。内部のコンプライアンス要件、すなわち署名済みパッケージ・SBOM・provenance を伴う再現可能なビルドを満たすためのものだ。位置づけとしては、プロジェクトのソースと配布可能な成果物の間に立つ。上流にはソースとビルド手順を記した spec があり、下流には出荷される RPM/DEB パッケージとコンテナイメージがある。
いつ使うか
- ソースからビルドしたネイティブな distro パッケージ (RPM または DEB) が必要で、同じ spec を複数の distro に向けたい。単にファイルをイメージへコピーするのとは違う場合。
- 署名・SBOM・provenance をビルドの一部として成果物に付けたい。コンプライアンスやサプライチェーンのポリシーを満たすため。
- 自分のパッケージとその実行時依存だけを含む最小コンテナを、ビルドとテストを一括で通して得たい。
- これらすべてを、専用ビルドサービスなしに、ローカルや CI の素の
docker buildで回したい。 - 素の Dockerfile で足りていて、ネイティブなパッケージング・署名・attestation を気にしないなら不向き。
- リリースオーケストレータではない。ビルドとパッケージングは行うが、バージョン繰り上げ、リリース横断の changelog 生成、レジストリやパッケージリポジトリへの公開は扱わない。
このディープダイブの構成
- 歴史: 起源・マイルストーン・存在理由。
- アーキテクチャ: コンポーネントとビルドリクエストの流れ。
- 採用事例・エコシステム: 誰が作り、周囲に何があるか。
- 内部実装: ソースから読んだ重要なコードパス。
- はじめに: インストールと最初の動くビルド。
出典
- project-dalec/dalec README (参照 2026-06-26)
- dalec ソース (固定コミット 0d888c2) (参照 2026-06-26)
- Dalec: Declarative Package and Container Builds (Microsoft Community Hub) (参照 2026-06-26)
- [Sandbox] Dalec, cncf/sandbox Issue #396 (参照 2026-06-26)
- Dalec プロジェクトページ (CNCF) (参照 2026-06-26)
- Dalec ドキュメントサイト (参照 2026-06-26)
- What's new with Microsoft at KubeCon NA 2025 (参照 2026-06-26)
- What's new with Microsoft at KubeCon EU 2026 (参照 2026-06-26)
- moby/buildkit (LLB / フロントエンド機構) (参照 2026-06-26)
- Docker BuildKit custom frontend syntax (参照 2026-06-26)
- GitHub REST API repos/project-dalec/dalec (参照 2026-06-26)