谷歌開源 Java 容器化工具,名字就叫——Jib

Java編程2018-07-18 00:20:24

開源最前線(ID:OpenSourceTop) 猿妹編譯

鏈接:https://cloudplatform.googleblog.com/2018/07/introducing-jib-build-java-docker-images-better.html


谷歌雲平臺官方博客宣佈發佈了新的開源工具 Jib,一款快速而簡單的工具,能使容器技術和 Java 編程語言更加無縫地協同工作,使 Java 開發人員能更輕鬆地跨用例部署和控制 Java 應用程序。


容器鏡像構建工具Jib


授權協議:Apache 2.0

開發語言:Java 

操作系統:跨平臺

開發廠商:Google

Github:github.com/GoogleContainerTools/jib


在發佈的博客文章中,Google 軟件工程師 Appu Goundan 和 Qingyang Chen 對 Jib 進行了詳細的介紹,以下為博客文章內容:



容器技術使得Java人員比以往都更接近“一次編寫,隨處運行”的工作流程,但要容器化Java應用程序卻不是一件簡單的事:你必須編寫Dockerfile,以root身份運行Docker守護程序,等待構建完成,最後將圖像推送到遠程註冊表。並非所有Java開發人員都是容器專家;容器化Java應用程序,並不是建一個JAR包那麼簡單


為了應對這一挑戰,谷歌發佈了Java容器 Jib,允許Java開發人員使用他們所知道的Java工具構建容器。Jib是一個快速而簡單的容器鏡像構建器,它可以處理應用程序打包到容器映像中的所有步驟。它不需要開發者編寫Dockerfile或安裝Docker,它直接集成到Maven和Gradle中 -開發者只需將插件添加到構建中,就可以立即將Java應用程序容器化。


Docker構建流程:



Jib構建流程:




Jib如何使優化開發過程


Jib利用Docker鏡像中的分層功能,並與構建系統集成,以通過以下方式優化Java容器映像構建:


1、簡單 - Jib在Java中實現,並作為Maven或Gradle構建的一部分運行。你不需要維護Dockerfile、運行Docker守護程序,甚至無需創建具有所有依賴項的JAR。由於Jib與你的Java構建緊密集成,因此它可以訪問打包應用程序所需的所有信息。在後續容器構建期間,將自動選擇Java構建中的任何變體。


2、快速 - Jib利用圖像分層和註冊表緩存來實現快速,增量構建。它能夠讀取你的構建配置,將你的應用程序組織到不同的層(依賴項,資源,類)中,並僅重建和推送已更改的層。在項目上快速迭代時,Jib可以僅將已更改的層推送到註冊表,以此來節省構建時間


3、可重現 - Jib支持從Maven和Gradle構建元數據以聲明方式構建容器圖像,因此可以配置為只要輸入保持不變,就可以通過配置創建可重現的構建鏡像。



如何使用Jib來容器化Java應用程序


Jib可作為Maven和Gradle的插件使用,並且需要最少的配置。只需將插件添加到構建定義中並配置目標鏡像即可。如果要構建到私有註冊表,請確保使用註冊表配置Jib。最簡單的方法是使用docker-credential-gcr之類的憑證助手。如果需要,Jib還提供了用於為Docker守護程序構建映像的其他規則。


Jib on Maven:


<plugin>
  <groupId>com.google.cloud.tools</groupId>
  <artifactId>jib-maven-plugin</artifactId>
  <version>0.9.0</version>
  <configuration>
    <to>
      <image>gcr.io/my-project/image-built-with-jib</image>
    </to>
  </configuration>
</plugin>


# Builds to a container image registry.
$ mvn compile jib:build
# Builds to a Docker daemon.
$ mvn compile jib:dockerBuild



Jib on Gradle:


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 jibDockerBuild


Jib 使 Java 開發人員更容易使用容器,可以進一步擴展企業對容器技術的採用。Jib 可在絕大多數雲廠商提供的雲中使用。



●編號736,輸入編號直達本文

●輸入m獲取文章目錄

閱讀原文

TAGS: