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 的構建元數據進行聲明式的容器鏡像構建,只要輸入保持不變,就可以通過配置重復創建相同的鏡像。