Google 本週宣佈開源一款新的 Java 工具 Jib ,旨在讓開發者使用他們熟悉的工具更輕鬆地將 Java 應用程式容器化。
在7月9日釋出的部落格文章中,Google 軟體工程師 Appu Goundan 和 Qingyang Chen 將 Jib 描述為一個容器映象構建器,旨在處理將 Java 應用打包到容器中所涉及的所有步驟。
他們表示,容器使 Java 開發者比以往任何時候都更靠近“一次編寫,隨處執行” 的工作流程,但容器化 Java 應用卻並非易事:你必須先編寫 Dockerfile ,root 後執行 Docker 守護程式,等待構建完成,最後將映象推送至遠端登錄檔。Jib 將處理將應用打包到容器映象過程中的所有步驟,它直接與 Maven 和 Gradle Java 開發環境整合,不需要你編寫 Dockerfile 或安裝 Docker ,只需將其作為外掛新增到你的構建中,就可以立即將 Java 應用容器化。
Docker 構建流程:
Jib 構建流程:
Jib 利用 Docker 映象中的分層功能,以 Maven 和 Gradle 外掛形式提供,通過以下方式優化 Java 容器映象構建:
-
簡單 – Jib 採用 Java 實現,並作為 Maven 或 Gradle 構建的一部分執行。你不需要維護 Dockerfile ,執行 Docker 守護程式,甚至無需建立包含所有依賴項的 JAR 包。
-
快速 – Jib 利用映象分層和登錄檔快取來實現快速、增量構建。它讀取你的構建配置,將應用分到不同的層中,只重新構建和推送發生變更的層。
-
可重現 – Jib 支援根據 Maven 和 Gradle 的構建後設資料進行宣告式的容器映象構建,只要輸入保持不變,就可以通過配置重複建立相同的映象。