目錄
- 一、說明
- 二、插件使用
- 三、總結
- 四、樣例工程
一、說明
本文介紹基于 Maven
插件 jib-maven-plugin
實現快速構建 Spring Boot
程序鏡像,并推送到遠程倉庫中,且 「無需安裝」 Docker
環境 。
Jib 是 Google 開發的一個無需 Docker 守護進程,也無需深入掌握 Docker 最佳實踐的情況下,為 Java 應用程序構建 Docker 和 OCI 鏡像,以 Maven 和 Gradle 插件形式提供。
二、插件使用
下圖為插件的配置樣例,構建后的鏡像發布到阿里云倉庫中(免費):
阿里云倉庫配置以及用戶名密碼需要按照自己注冊的信息進行修改
注冊地址:https://cr.console.aliyun.com/
插件詳細的配置可查看: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