利用Google開源Java容器化工具Jib構建映象

隨風而逝,只是飄零發表於2018-07-11

轉載:https://blog.csdn.net/u012562943/article/details/80995373

一、前言

容器的出現讓Java開發人員比以往任何時候都更接近“編寫一次,到處執行”的工作流程,但要對Java應用程式進行容器化並非易事:你必須編寫Dockerfile,以root身份執行Docker守護程式,等待構建完成,最後將映象推送到遠端註冊中心。但並非所有的Java開發人員都是容器專家,像以前那樣只需要構建一個JAR包的日子已經結束了嗎?為了應對這一挑戰,谷歌開源了一個Java容器化工具Jib,有了這個工具,Java開發人員可以使用他們熟悉的Java工具來構建容器。Jib是一個快速而簡單的容器映象構建工具,它負責處理將應用程式打包到容器映象中所需的所有步驟。它不需要你編寫Dockerfile或安裝Docker,而且可以直接整合到Maven中,只需要將外掛新增到構建中,就可以立即將 Java應用程式容器化。

二、Docker構建流程:

三、Jib構建流程:

四、Jib如何讓開發變得更美好
Jib利用了Docker映象的分層機制,將其與構建系統整合,並通過以下方式優化 Java容器映象的構建
簡單——Jib使用Java開發,並作為Maven的一部分執行。你不需要編寫Dockerfile或執行Docker守護程式,甚至無需建立包含所有依賴的大JAR包。因為Jib與Java構建過程緊密整合,所以它可以訪問到打包應用程式所需的所有資訊。在後續的容器構建期間,它將自動選擇Java構建過的任何變體。
快速——Jib利用映象分層和登錄檔快取來實現快速、增量的構建。它讀取你的構建配置,將你的應用程式組織到不同的層(依賴項、資源、類)中,並只重新構建和推送發生變更的層。在專案進行快速迭代時,Jib只講發生變更的層(而不是整個應用程式)推送到登錄檔來節省寶貴的構建時間。
可重現——Jib支援根據Maven的構建後設資料進行宣告式的容器映象構建,因此,只要輸入保持不變,就可以通過配置重複建立相同的映象。
五、如何使用Jib來容器化你的應用程式
Jib可作為Maven的外掛使用,並且只需要做出最少的配置。只需將外掛新增到構建定義中並配置目標映象即可。如果要將映象推送到私有註冊中心,要為Jib配置所需的祕鑰。最簡單的方法是使用docker-credential-gcr之類的憑證助手。Jib還提供了其他的一些規則,用於將映象構建到 Docker守護程式。
在Maven中使用Jib:
<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專案地址:github.com/GoogleContainerTools/jib

相關文章