亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

詳解SpringBoot構(gòu)建Docker鏡像的3種方式

瀏覽:4日期:2023-05-10 15:20:47

本文將介紹3種技術(shù),通過(guò) Maven 把 SpringBoot 應(yīng)用構(gòu)建成 Docker 鏡像。

(1)使用 spring-boot-maven-plugin 內(nèi)置的 build-image.

(2)使用 Google 的 jib-maven-plugin。

(3)使用 dockerfle-maven-plugin。

Spring Boot 應(yīng)用

為了方便實(shí)踐,需要一個(gè) Spring Boot 項(xiàng)目。

Demo 項(xiàng)目地址:

https://github.com/davelms/medium-articles/tree/master/spring-maven-docker

項(xiàng)目環(huán)境:

Java 11 Maven 3.6.3

使用 mvn package 可以正常構(gòu)建 jar 包。

也可以正常運(yùn)行:

java -jar target/demo-application-0.0.1-SNAPSHOT.jar

測(cè)試頁(yè)面:

http://localhost:8080/hello

詳解SpringBoot構(gòu)建Docker鏡像的3種方式

Demo 項(xiàng)目 OK 了,下面就開(kāi)始實(shí)踐構(gòu)建鏡像的3個(gè)方法。

1 Spring Boot maven 插件 的 build-image

Spring Boot 預(yù)裝了自己的用于構(gòu)建 Docker 鏡像的插件,我們無(wú)需進(jìn)行任何更改,因?yàn)樗驮?pom.xml 中的 spring-boot-starter-parent。

你不需要寫(xiě) Dockerfile,也不用操別的心,plugin 都幫你做了,例如 Spring 建議的安全、內(nèi)存、性能等問(wèn)題。

只需要簡(jiǎn)單的執(zhí)行:

mvn spring-boot:build-image

執(zhí)行完成后會(huì)看到成功提示信息:

詳解SpringBoot構(gòu)建Docker鏡像的3種方式

運(yùn)行容器測(cè)試:

docker run -p 9090:8080 -t demo-application:0.0.1-SNAPSHOT

注意:這里映射的本機(jī)端口是9090。

詳解SpringBoot構(gòu)建Docker鏡像的3種方式

2 jib-maven-plugin

Jib 是一個(gè) Maven 和 Gradle 插件,用來(lái)創(chuàng)建 Docker 鏡像。

這個(gè)插件有一個(gè)非常明顯的特點(diǎn):不需要本地安裝 Docker,這對(duì)持續(xù)集成是非常方便的,Jib 可以直接推送到指定的 Docker 倉(cāng)庫(kù)。

Jib 同樣也不需要寫(xiě) Dockerfile。

使用起來(lái)也非常方便,不需要改代碼,也可以不改動(dòng) pom.xml。

只需要執(zhí)行:

mvn compile com.google.cloud.tools:jib-maven-plugin:2.3.0:dockerBuild

mvn compile

是我們很熟悉的 maven 編譯指令。

com.google.cloud.tools:jib-maven-plugin:2.3.0

指定了使用 Jib 插件

dockerBuild

是 Jib 插件的執(zhí)行目標(biāo),dockerBuild 指定了 Jib 使用我們本地安裝的 Docker。

執(zhí)行完成后會(huì)看到成功提示信息:

詳解SpringBoot構(gòu)建Docker鏡像的3種方式

啟動(dòng)容器測(cè)試:

docker run -p 9091:8080 -t demo-application:0.0.1-SNAPSHOT

注意:這里映射的本機(jī)端口是9091。

詳解SpringBoot構(gòu)建Docker鏡像的3種方式

3 dockerfile-maven-plugin

這個(gè)插件就需要我們寫(xiě) Dockerfile 了,Domo 項(xiàng)目中已經(jīng)準(zhǔn)備好了。

Dockerfile 需要放在項(xiàng)目的根目錄下,和 pom.xml 在一起。

詳解SpringBoot構(gòu)建Docker鏡像的3種方式

然后,需要在 pom.xml 中添加一些配置,以便指定倉(cāng)庫(kù)、tag 標(biāo)簽,還有上面 Dockerfile 中定義的 JAR_FILE。

詳解SpringBoot構(gòu)建Docker鏡像的3種方式

執(zhí)行 mvn package 時(shí)就會(huì)自動(dòng)構(gòu)建鏡像了,執(zhí)行完成后就會(huì)看到提示信息:

詳解SpringBoot構(gòu)建Docker鏡像的3種方式

運(yùn)行容器:

docker run -p 9092:8080 -t demo-application:0.0.1-SNAPSHOT

注意:映射的本機(jī)端口是 9092。

詳解SpringBoot構(gòu)建Docker鏡像的3種方式

小結(jié)

詳解SpringBoot構(gòu)建Docker鏡像的3種方式

這3個(gè)里面最方便的是 SpringBoot 原生的方式,什么都不需要自己做,直接就能用。

最有特點(diǎn)的是 Jib,不需要你本地安裝 Docker,可以直接推送到指定的倉(cāng)庫(kù),而且使用起來(lái)也很簡(jiǎn)單。

看起來(lái)最麻煩的就是 dockerfile-maven-plugin 這個(gè)插件了,需要寫(xiě) Dockerfile,還得添加配置,但是,實(shí)際上他是最好用的,因?yàn)榍?個(gè)與網(wǎng)絡(luò)環(huán)境有關(guān)系(你懂的),即使你配置了 Docker 鏡像,也會(huì)報(bào)錯(cuò),你可以試一下。

參考資料:

jib-maven-plugin

https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin

dockerfile-maven plugin

https://github.com/spotify/dockerfile-maven

本文翻譯整理自:

https://medium.com/swlh/build-a-docker-image-using-maven-and-spring-boot-58147045a400

到此這篇關(guān)于SpringBoot構(gòu)建Docker鏡像的3種方式的文章就介紹到這了,更多相關(guān)SpringBoot構(gòu)建Docker鏡像內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: www.黄色com| 麻豆视传媒一区二区三区 | 国产女人综合久久精品视 | 久久亚洲国产精品五月天 | 毛片无限看 | 美女三级黄 | 欧美一级高清片欧美国产欧美 | 青青草国产免费国产 | 久久综合九色综合亚洲小说 | 国产精品夜色视频一级区 | 手机看片福利日韩 | 免费看色视频 | 黄色一级片毛片 | 无毒不卡在线播放 | 久久最新免费视频 | 国产精品果冻 | 91国内精品在线 | 国产一区二区三区在线视频 | 成人免费网址在线 | 看一级特黄a大片日本片黑人 | 狠狠色丁香婷婷综合最新地址 | 黄色片在线 | 国产欧美日韩精品一区二 | 射黄视频| 久久欧美精品欧美九久欧美 | 亚洲情a成黄在线观看 | 亚洲国产青草 | 日韩欧美亚洲国产 | 成人在线午夜 | 亚洲天堂婷婷 | aaaaaaa一级毛片 | 亚洲福利精品一区二区三区 | 一区二区三区www | 国产美女视频网站 | 国产成人一区二区三区视频免费蜜 | 欧美一级日本一级韩国一级 | 美女免费观看一区二区三区 | 成年人网址在线观看 | 成年人视频网站免费 | 国产又黄又爽又色视频影视网免费 | 精品国产亚一区二区三区 |