一、說明
本文介紹基於 Maven
外掛 jib-maven-plugin
實現快速構建 Spring Boot
程式映象,並推送到遠端倉庫中,且 無需安裝 Docker
環境 。
Jib 是 Google 開發的一個無需 Docker 守護程式,也無需深入掌握 Docker 最佳實踐的情況下,為 Java 應用程式構建 Docker 和 OCI 映象,以 Maven 和 Gradle 外掛形式提供。
二、外掛使用
下圖為外掛的配置樣例,構建後的映象釋出到阿里雲倉庫中(免費):
阿里雲倉庫配置以及使用者名稱密碼需要按照自己註冊的資訊進行修改
外掛詳細的配置可檢視:
https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin
配置中增加了 execution
進行觸發,當 Maven
執行 package
命令時會自動構建併發布映象:
登入阿里雲容器映象服務,即可檢視我們釋出的映象:
三、總結
對於 Java
程式來說使用 jib-maven-plugin
外掛來構建映象還是非常方便的。
與傳統的 dockerfile
構建映象的方式對比:
構建方式 | dockerfile | Jib |
---|---|---|
docker環境 | 需要 | 無需 |
dockerfile檔案 | 需要 | 無需 |
構建複雜度 | 較複雜 | 很方便 |
靈活度 | 高 | 相對較高 |
PS:怎樣透過 Jib
在構建映象的時候實現 dockerfile
中的類似 RUN
之類的命令,如安裝一個程式執行時所需要的字型?
答:不支援,但是解決方式也很簡單,只需先基於 dockerfile
這種方式構建一個安裝好所需字型的基礎映象,然後在 Jib
中透過 from
依賴這個映象來構建微服務的映象即可。
四、樣例工程
整合 jib-maven-plugin
外掛的樣例 Spring Boot
工程:
- https://gitee.com/zlt2000_admin/zlt-dubbo-samples/tree/master/dubbo-nacos
- https://github.com/zlt2000/zlt-dubbo-samples/tree/master/dubbo-nacos
掃碼關注有驚喜!