Earthly
Earthly 重複性建置引擎
軟體分類 系統管理 / 開發運維 (DevOps)
軟體標籤
15941593225women1250
開發廠商 Earthly Technologies
讓建置流程具備「容器級」的穩定性:無論在本機、GitHub Actions 還是 Jenkins,結果永遠一致
- 環境完全隔離: 所有的建置步驟都在容器內執行,這意味著您不再需要擔心本機安裝的編譯器版本與 CI 環境不一致的問題。
- 極速的平行化建置: Earthly 能自動識別建置步驟之間的依賴關係並平行執行不相干的任務,配合其強大的快取機制,大幅縮短建置循環時間。
- 語法親切且強大: 使用類似 Dockerfile 的語法,但引入了 Makefile 的目標(Targets)與依賴概念,讓複雜的多階段建置變得清晰易懂。
主要功能、特點
介紹: Earthly 是一個建置自動化系統,它允許您定義具備重複性(Reproducible)、可移植性與平行性的建置管道。它使用
Earthfile來描述建置邏輯,並利用容器技術確保環境的一致性。特色服務:
- 層級快取 (Layered Caching): 與 Docker 類似,Earthly 會快取每一個步驟的結果。如果代碼沒變,秒級完成建置不再是夢想。
- 雲端共享快取 (Satellites): 2026 年版本強化了雲端原生特性,團隊成員之間可以共享建置快取,一人建置,全隊受益。
- 跨平台原生支援: 支援交叉編譯(Cross-compilation),您可以輕鬆在 Mac M4 上建置適用於 Linux x86 伺服器的二進位檔案。
- 內建導出機制: 可以輕鬆將建置產物導出為本地文件、Docker 鏡像或是推送到遠端倉庫。
建置工具對比表
| 特性項目 | Makefile | Dockerfile | Earthly | Bazel |
|---|---|---|---|---|
| 環境隔離 | 無 (依賴宿主機) | 高 | 高 (原生容器化) | 高 |
| 語法難度 | 中 (語法古老) | 低 | 低 (類 Docker 語法) | 極高 (Starlark) |
| 重複性保證 | 差 | 良 | 優 (環境+邏輯鎖定) | 優 |
| 平行執行 | 手動配置 | 有限 | 自動平行化 | 自動平行化 |
| 快取機制 | 基於檔案時間戳 | 基於層 | 智慧層級快取 | 分散式精準快取 |
快速使用範例 (Earthfile)
這是一個簡單的 Go 專案建置範例,展示了 Earthly 如何管理依賴與編譯:
VERSION 0.8
build:
FROM golang:1.23-alpine
WORKDIR /src
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN go build -o /bin/myapp main.go
SAVE ARTIFACT /bin/myapp AS LOCAL ./build/myapp
docker:
FROM alpine:latest
COPY +build/myapp /usr/bin/myapp
ENTRYPOINT ["/usr/bin/myapp"]
SAVE IMAGE my-app:latest
只需執行 earthly +docker,無論在誰的電腦上,產出的鏡像都是完全相同的。
產品說明
Earthly 是軟體工程中的「一致性膠水」。在 開發運維 (DevOps) 的工具版圖中,它解決了 CI/CD 流程中最令人頭痛的環境不對等問題。它將建置邏輯從繁瑣的雲端平台配置(如複雜的 YAML 腳本)中抽離出來,回歸到代碼倉庫本身。其核心價值在於「開發者體驗的升級」——它賦予了開發者在本地完整模擬並除錯 CI 流程的能力。對於在 2026 年追求高品質交付、希望擺脫「建置地獄」的開發團隊來說,Earthly 是打造現代化軟體工廠的最佳利器。
![[https://192.168.30.195/wp-content/uploads/2026/02/Earthly_ui01_20260210.png]]![[https://192.168.30.195/wp-content/uploads/2026/02/Earthly_ui02_20260210.png]]
**Earthly** 讓您的建置流程如同代碼一般,既精準又可預測。
**既然 Earthly 已經入列您的工具箱,您是否需要我為您撰寫一份針對「Python 或 Node.js」專案的 Earthfile 模板,或是說明如何將 Earthly 整合進您的「GitHub Actions」中?**