07.12 Google 宣佈正式開源 Jib,幫助 Java 應用快速容器化

Google 本週宣佈開源一款新的 Java 工具 Jib ,旨在讓開發者使用他們熟悉的工具更輕鬆地將 Java 應用程序容器化。

Google 宣佈正式開源 Jib,幫助 Java 應用快速容器化

在7月9日發佈的博客文章中,Google 軟件工程師 Appu Goundan 和 Qingyang Chen 將 Jib 描述為一個容器鏡像構建器,旨在處理將 Java 應用打包到容器中所涉及的所有步驟。

他們表示,容器使 Java 開發者比以往任何時候都更靠近“一次編寫,隨處運行” 的工作流程,但容器化 Java 應用卻並非易事:你必須先編寫 Dockerfile ,root 後運行 Docker 守護進程,等待構建完成,最後將鏡像推送至遠程註冊表。Jib 將處理將應用打包到容器鏡像過程中的所有步驟,它直接與 Maven 和 Gradle Java 開發環境集成,不需要你編寫 Dockerfile 或安裝 Docker ,只需將其作為插件添加到你的構建中,就可以立即將 Java 應用容器化。

Docker 構建流程:

Google 宣佈正式開源 Jib,幫助 Java 應用快速容器化

Jib 構建流程:

Google 宣佈正式開源 Jib,幫助 Java 應用快速容器化

Jib 利用 Docker 鏡像中的分層功能,以 Maven 和 Gradle 插件形式提供,通過以下方式優化 Java 容器鏡像構建:

  1. 簡單 - Jib 採用 Java 實現,並作為 Maven 或 Gradle 構建的一部分運行。你不需要維護 Dockerfile ,運行 Docker 守護進程,甚至無需創建包含所有依賴項的 JAR 包。
  2. 快速 - Jib 利用鏡像分層和註冊表緩存來實現快速、增量構建。它讀取你的構建配置,將應用分到不同的層中,只重新構建和推送發生變更的層。
  3. 可重現 - Jib 支持根據 Maven 和 Gradle 的構建元數據進行聲明式的容器鏡像構建,只要輸入保持不變,就可以通過配置重複創建相同的鏡像。

目標

  • 快速 — 快速部署您的更改。Jib 將你的應用程序分成多個層,從類中分離依賴項。你不必等待 Docker 重建整個 Java 應用程序 —— 只需部署更改的層即可
  • 可重現 — 使用相同內容重建容器鏡像
  • Daemonless — 減少 CLI 依賴性。從 Maven 或 Gradle 中構建 Docker 鏡像,然後推送到你選擇的任何註冊表,無需編寫 Dockerfiles 並調用 docker build/push

在 Maven 中使用 Jib:

<plugin> /<plugin>

<groupid>com.google.cloud.tools/<groupid>

<artifactid>jib-maven-plugin/<artifactid>

<version>0.9.0/<version>

<configuration> /<configuration>

<image>gcr.io/my-project/image-built-with-jib/<image>

# Builds to a container image registry.

$ mvn compile jib:build

# Builds to a Docker daemon.

$ mvn compile jib:dockerBuild

在 Gradle 中使用 Jib:

plugins {

id 'com.google.cloud.tools.jib' version '0.9.0'}

jib.to.image = 'gcr.io/my-project/image-built-with-jib'

# Builds to a container image registry.

$ gradle jib

# Builds to a Docker daemon.

$ gradle jibDockerBuil

Google 宣佈正式開源 Jib,幫助 Java 應用快速容器化

後續更多精彩內容請關注“IT實戰聯盟”哦~~~


分享到:


相關文章: