【ダガー】

Dagger とは?

💡 CI/CDをコードで書く!どこでも同じパイプラインが動くDevOpsエンジン
📌 このページのポイント
Dagger: どこでも同じパイプラインが動く パイプラインをコードで記述 Go / Python / TypeScript ローカル dagger run で 手元で実行 GitHub Actions CI上で同じ パイプラインが動く その他CI CircleCI / GitLab Jenkins 等 従来: YAML定義 → CI依存 CIサービスごとに設定を書き直す必要 Dagger: コード定義 → ポータブル どのCIでもローカルでも同じ動作
Dagger のポータブルパイプラインのイメージ
ひよこ ひよこ

Daggerって何が新しいの?普通のCI/CDとは違うの?

ペンギン先生 ペンギン先生

普通のCI/CDYAMLでパイプラインを書くけど、DaggerはGoやPythonTypeScriptなどのプログラミング言語で書くんだ。YAMLだと条件分岐や繰り返しが複雑になりがちだけど、プログラミング言語なら自由自在に制御できるよ

ひよこ ひよこ

ローカルでも動くってどういうこと?

ペンギン先生 ペンギン先生

従来のCI/CDは「GitHubにプッシュしてCI上でエラーになって、修正してまたプッシュして…」という試行錯誤が面倒だったんだ。Daggerはローカルのコマンドラインで全く同じパイプラインを実行できるから、手元で確認してからプッシュできるんだよ

ひよこ ひよこ

それはすごく便利そう!どうやって実現しているの?

ペンギン先生 ペンギン先生

内部でコンテナを使っているんだ。パイプラインの各ステップがコンテナ内で実行されるから、ローカルでもCIサーバー上でも環境の差がない。さらにBuildKitというDockerのビルドエンジンを使ってキャッシュも効くから、高速に動くよ

ひよこ ひよこ

Dockerの人が作ったって本当なの?

ペンギン先生 ペンギン先生

そうだよ。Docker社の創設者であるSolomon Hykesが新しく立ち上げたプロジェクトなんだ。Dockerアプリケーションの実行環境を革命したように、DaggerはCI/CDのあり方を変えようとしているんだよ

ひよこ ひよこ

これからCI/CDはDaggerみたいな方式が主流になるのかな?

ペンギン先生 ペンギン先生

YAMLの限界はみんな感じているから、コードでパイプラインを書く流れは確実に来ているね。DaggerはGraphQLベースのAPIモジュール間を連携させる仕組みもあって、CI/CDの部品を再利用・共有するエコシステムを目指しているんだ。まだ発展途上だけど、注目度はかなり高いよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Dagger」って出てきたら「プログラミング言語CI/CDパイプラインを書けるツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Dagger」 = 短剣
💬 「Dagger」は英語で短剣のこと。複雑なCI/CDの問題をスパッと解決するという意味が込められているんだよ
← 用語集にもどる