利用Google開源Java容器化工具Jib構建鏡像


轉載: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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM