【アースリー】

Earthly とは?

最終更新:
💡 同じEarthfileを使い、ビルドの環境差を減らす

Earthfileに書いたターゲットを実行するビルド自動化ツール。コンテナを使ってローカルとCIの環境差を減らす。積極的な保守とクラウドサービスの終了が2025年に告知された。

📌 このページのポイント
Earthfileに書いた依存関係を実行する Earthfile build: docker: COPY +build/example . ローカル / CI earthly +docker コンテナでbuild example 成果物を保存 コンテナでdocker イメージを保存 COPY 依存する版や入力もそろえて環境差を減らす
公式入門の構成例。earthly +dockerがbuildの成果物を使う。ターゲット名だけで順序は決まらない。
ひよこ ひよこ
Earthlyは何をするの?
ペンギン先生 ペンギン先生
Dockerfileに似たEarthfileへビルド手順を書くツールだよ。build:のようにターゲットを定義し、コマンドではearthly +buildと指定して呼び出す。定義に+build:と書くわけではないんだ。
ひよこ ひよこ
Makefileとはどう違うの?
ペンギン先生 ペンギン先生
FROMで指定したコンテナ環境を使い、ローカルとCIの環境差を減らせるよ。ただしコンテナを使うだけで結果が完全に保証されるわけではない。依存するイメージやライブラリの版、入力や外部サービスもそろえる必要があるね。
ひよこ ひよこ
ターゲットは順番に全部実行する?
ペンギン先生 ペンギン先生
呼び出したターゲットに必要な依存関係をたどるよ。たとえばdocker:からCOPY +build/example .で成果物を使うと、build側も必要になる。build→test→dockerという決まった順番が自動的に付くわけではないんだ。
ひよこ ひよこ
CIでも速く動かせる?
ペンギン先生 ペンギン先生
キャッシュを再利用し、独立した処理を並列に実行できるよ。CIで使うにはEarthlyとコンテナ実行環境などの準備が必要。別環境とのキャッシュ共有も設定や方式によるので、コマンドを呼ぶだけでローカルのキャッシュが共有されるわけではないね。
ひよこ ひよこ
今もサービスを使えるの?
ペンギン先生 ペンギン先生
公式は2025年4月16日に、積極的な保守の終了と重大な不具合修正に限る方針を告知したよ。Earthly CloudとSatellitesの提供終了日は同年7月16日。公開されたオープンソース版の利用と、終了したクラウドサービスの利用は区別する必要があるんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Earthly」って出てきたら「Earthfileとコンテナでビルド手順をまとめるツール」と思えばだいたいOK!
📖 おまけ:英語の意味
「Earthly / Earthfile」 = ビルドツール名/ビルド手順を書くファイル名
💬 Earthfileにターゲットや依存関係を書くんだ。ローカルでもCIでも、同じファイルにまとめたビルド手順を使えるよ。

参考資料

← 用語集にもどる