基于jib-maven-plugin插件快速構(gòu)建微服務(wù)docker鏡像的方法
一、說明
本文介紹基于 Maven 插件 jib-maven-plugin 實(shí)現(xiàn)快速構(gòu)建 Spring Boot 程序鏡像,并推送到遠(yuǎn)程倉庫中,且 「無需安裝」 Docker 環(huán)境 。
Jib 是 Google 開發(fā)的一個(gè)無需 Docker 守護(hù)進(jìn)程,也無需深入掌握 Docker 最佳實(shí)踐的情況下,為 Java 應(yīng)用程序構(gòu)建 Docker 和 OCI 鏡像,以 Maven 和 Gradle 插件形式提供。
二、插件使用
下圖為插件的配置樣例,構(gòu)建后的鏡像發(fā)布到阿里云倉庫中(免費(fèi)):

阿里云倉庫配置以及用戶名密碼需要按照自己注冊(cè)的信息進(jìn)行修改
注冊(cè)地址:https://cr.console.aliyun.com/
插件詳細(xì)的配置可查看:https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin
配置中增加了 execution 進(jìn)行觸發(fā),當(dāng) Maven 執(zhí)行 package 命令時(shí)會(huì)自動(dòng)構(gòu)建并發(fā)布鏡像:

登錄阿里云容器鏡像服務(wù),即可查看我們發(fā)布的鏡像:

三、總結(jié)
對(duì)于 Java 程序來說使用 jib-maven-plugin 插件來構(gòu)建鏡像還是非常方便的。
與傳統(tǒng)的 dockerfile 構(gòu)建鏡像的方式對(duì)比:
| 構(gòu)建方式 | dockerfile | Jib |
|---|---|---|
| docker環(huán)境 | 需要 | 無需 |
| dockerfile文件 | 需要 | 無需 |
| 構(gòu)建復(fù)雜度 | 較復(fù)雜 | 很方便 |
| 靈活度 | 高 | 相對(duì)較高 |
「PS」:怎樣通過 Jib 在構(gòu)建鏡像的時(shí)候?qū)崿F(xiàn) dockerfile 中的類似 RUN 之類的命令,如安裝一個(gè)程序運(yùn)行時(shí)所需要的字體?
「答」:不支持,但是解決方式也很簡單,只需先基于 dockerfile 這種方式構(gòu)建一個(gè)安裝好所需字體的基礎(chǔ)鏡像,然后在 Jib 中通過 from 依賴這個(gè)鏡像來構(gòu)建微服務(wù)的鏡像即可。
四、樣例工程
集成 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
到此這篇關(guān)于基于jib-maven-plugin快速構(gòu)建微服務(wù)docker鏡像的方法的文章就介紹到這了,更多相關(guān)jib-maven-plugin構(gòu)建微服務(wù)docker鏡像內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 微服務(wù)鏈路追蹤Spring Cloud Sleuth整合Zipkin解析
- Java微服務(wù)Filter過濾器集成Sentinel實(shí)現(xiàn)網(wǎng)關(guān)限流過程詳解
- Java微服務(wù)分布式調(diào)度Elastic-job環(huán)境搭建及配置
- Java微服務(wù)Nacos Config配置中心超詳細(xì)講解
- SpringCloud微服務(wù)中跨域配置的方法詳解
- Java Feign微服務(wù)接口調(diào)用方法詳細(xì)講解
- go微服務(wù)PolarisMesh源碼解析服務(wù)端啟動(dòng)流程
- 微服務(wù)Spring Boot 整合 Redis 實(shí)現(xiàn)UV 數(shù)據(jù)統(tǒng)計(jì)的詳細(xì)過程
- go-micro微服務(wù)JWT跨域認(rèn)證問題
- 詳解go-micro微服務(wù)consul配置及注冊(cè)中心
- go-micro微服務(wù)domain層開發(fā)示例詳解
- 微服務(wù)?Spring?Boot?整合?Redis?BitMap?實(shí)現(xiàn)?簽到與統(tǒng)計(jì)功能
- 一文帶你了解微服務(wù)架構(gòu)中的"發(fā)件箱模式"
- go?micro微服務(wù)框架項(xiàng)目搭建方法
- go?micro微服務(wù)proto開發(fā)安裝及使用規(guī)則
- spring?Cloud微服務(wù)阿里開源TTL身份信息的線程間復(fù)用
- Mybatis與微服務(wù)注冊(cè)的詳細(xì)過程
- 簡單介紹一下什么是microservice微服務(wù)
相關(guān)文章
Docker容器內(nèi)不能聯(lián)網(wǎng)的6種解決方案
今天小編就為大家分享一篇關(guān)于Docker容器內(nèi)不能聯(lián)網(wǎng)的6種解決方案,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-10-10
docker安裝rockerChat設(shè)置聊天室的詳細(xì)步驟
這篇文章主要介紹了docker安裝rockerChat設(shè)置聊天室的方法,通過設(shè)置文件獲取docker-compose文件,文中給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-05-05
docker內(nèi)的容器如何與宿主機(jī)共享IP的方法
本文主要介紹了docker內(nèi)的容器如何與宿主機(jī)共享IP的方法,文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
Gitlab-runner+Docker實(shí)現(xiàn)自動(dòng)部署SpringBoot項(xiàng)目
這篇文章主要介紹了Gitlab-runner+Docker自動(dòng)部署SpringBoot項(xiàng)目,我們的主要流程就是通過Gitlab管理代碼,然后利用Gitlab自帶的Gitlab?CI/CD功能與GitlabRunner進(jìn)行注冊(cè)綁定,需要的朋友可以參考下2022-04-04
利用Dockerfile制作個(gè)人的鏡像文件詳細(xì)講解
Docker是一個(gè)開源的應(yīng)用容器引擎,Dockerfile是用來構(gòu)建Docker鏡像的構(gòu)建文件,是由一系列命令和參數(shù)構(gòu)成的腳本,本文將給大家詳細(xì)介紹如何利用Dockerfile制作個(gè)人的鏡像文件,感興趣的同學(xué)可以借鑒參考2023-06-06
詳解docker compose搭建lnmpr環(huán)境實(shí)現(xiàn)
這篇文章主要為大家介紹了使用docker compose搭建lnmpr環(huán)境實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
基于docker-compose構(gòu)建Mongodb副本集的示例詳解
副本集是?MongoDB?高可用性和數(shù)據(jù)安全性策略的基礎(chǔ),適用于對(duì)數(shù)據(jù)安全性和服務(wù)可用性有較高要求的場(chǎng)景,本文給大家介紹了如何基于docker-compose構(gòu)建Mongodb副本集,文中通過代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01

