最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2020年06月18日 09:20:40   作者:iriniland  
這篇文章主要介紹了SpringBoot構(gòu)建Docker鏡像的3種方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

本文將介紹3種技術(shù),通過 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

測試頁面:

http://localhost:8080/hello

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

1 Spring Boot maven 插件 的 build-image

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

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

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

mvn spring-boot:build-image

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

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

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

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

2 jib-maven-plugin

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

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

Jib 同樣也不需要寫 Dockerfile。

使用起來也非常方便,不需要改代碼,也可以不改動(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ì)看到成功提示信息:

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

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

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

3 dockerfile-maven-plugin

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

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

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

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

運(yùn)行容器:

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

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

小結(jié)

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

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

看起來最麻煩的就是 dockerfile-maven-plugin 這個(gè)插件了,需要寫 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)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于Java單個(gè)TCP(Socket)連接發(fā)送多個(gè)文件的問題

    關(guān)于Java單個(gè)TCP(Socket)連接發(fā)送多個(gè)文件的問題

    這篇文章主要介紹了關(guān)于Java單個(gè)TCP(Socket)連接發(fā)送多個(gè)文件的問題,每次我只能使用一個(gè) Socket 發(fā)送一個(gè)文件,沒有辦法做到連續(xù)發(fā)送文件,本文來解決這個(gè)問題,需要的朋友可以參考下
    2023-04-04
  • SpringBoot最常用的50個(gè)注解總結(jié)(全是干貨!)

    SpringBoot最常用的50個(gè)注解總結(jié)(全是干貨!)

    SpringBoot提供多種注解簡化配置與啟動(dòng)流程,如@SpringBootAppication、@RestController、@RequestMapping等,這篇文章主要介紹了SpringBoot最常用的50個(gè)注解的相關(guān)資料,需要的朋友可以參考下
    2024-09-09
  • 詳解SpringBoot中的參數(shù)校驗(yàn)(項(xiàng)目實(shí)戰(zhàn))

    詳解SpringBoot中的參數(shù)校驗(yàn)(項(xiàng)目實(shí)戰(zhàn))

    這篇文章主要介紹了SpringBoot中的參數(shù)校驗(yàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 使用TraceId在Spring Cloud中實(shí)現(xiàn)線上問題快速定位

    使用TraceId在Spring Cloud中實(shí)現(xiàn)線上問題快速定位

    在微服務(wù)架構(gòu)中,服務(wù)間的互相調(diào)用使得問題定位變得復(fù)雜,在此背景下,TraceId為我們提供了一個(gè)在復(fù)雜環(huán)境中追蹤請(qǐng)求路徑和定位問題的工具,本文不僅介紹TraceId的基本概念,還將結(jié)合真實(shí)場景,為您展示如何在Spring Cloud中應(yīng)用它
    2023-09-09
  • 詳解Java類型擦除機(jī)制

    詳解Java類型擦除機(jī)制

    Java泛型是JDK 5引入的一個(gè)特性,它允許我們定義類和接口的時(shí)候使用參數(shù)類型,泛型在集合框架中被廣泛使用。這篇文章主要介紹了Java類型擦除機(jī)制,需要的朋友可以參考下
    2019-07-07
  • 了解java架構(gòu)之微服務(wù)架構(gòu)—雪崩效應(yīng)

    了解java架構(gòu)之微服務(wù)架構(gòu)—雪崩效應(yīng)

    這篇文章主要介紹了了解java架構(gòu)之微服務(wù)架構(gòu)—雪崩效應(yīng),微服務(wù)化產(chǎn)品線,每一個(gè)服務(wù)專心于自己的業(yè)務(wù)邏輯,并對(duì)外提供相應(yīng)的接口,看上去似乎很明了,其實(shí)還有很多的東西需要考慮,,需要的朋友可以參考下
    2019-06-06
  • Java List的remove()方法陷阱以及性能優(yōu)化

    Java List的remove()方法陷阱以及性能優(yōu)化

    Java List在進(jìn)行remove()方法是通常容易踩坑,本文就詳細(xì)的介紹一下陷阱以及性能優(yōu)化,感興趣的可以了解一下
    2021-10-10
  • Java預(yù)防SQL注入的具體實(shí)踐方法

    Java預(yù)防SQL注入的具體實(shí)踐方法

    在?Java?中預(yù)防?SQL?注入的核心是?避免直接拼接?SQL?語句,并通過參數(shù)化查詢、ORM?框架和嚴(yán)格的輸入驗(yàn)證來實(shí)現(xiàn)安全防護(hù),以下是具體實(shí)踐方法,感興趣的小伙伴跟著小編一起來看看吧
    2025-01-01
  • java實(shí)現(xiàn)ArrayList根據(jù)存儲(chǔ)對(duì)象排序功能示例

    java實(shí)現(xiàn)ArrayList根據(jù)存儲(chǔ)對(duì)象排序功能示例

    這篇文章主要介紹了java實(shí)現(xiàn)ArrayList根據(jù)存儲(chǔ)對(duì)象排序功能,結(jié)合實(shí)例形式分析了java針對(duì)ArrayList的相關(guān)運(yùn)算、排序操作技巧,需要的朋友可以參考下
    2018-01-01
  • Spring Boot集成kubernetes客戶端實(shí)現(xiàn)API操作k8s集群的方案

    Spring Boot集成kubernetes客戶端實(shí)現(xiàn)API操作k8s集群的方案

    Kubernetes是一個(gè)開源的容器編排平臺(tái),可以自動(dòng)化在部署、管理和擴(kuò)展容器化應(yīng)用過程中涉及的許多手動(dòng)操作,這篇文章主要介紹了Spring Boot集成kubernetes客戶端實(shí)現(xiàn)API操作k8s集群,需要的朋友可以參考下
    2024-08-08

最新評(píng)論

武强县| 济源市| 乐清市| 修武县| 龙口市| 白银市| 和田市| 文成县| 桑植县| 宝丰县| 阳江市| 罗定市| 得荣县| 河池市| 陵川县| 濉溪县| 镇坪县| 始兴县| 荣成市| 宁波市| 铁岭县| 榆树市| 嵩明县| 凭祥市| 邵武市| 乾安县| 郁南县| 塘沽区| 读书| 松江区| 体育| 博罗县| 江山市| 噶尔县| 伊川县| 历史| 公主岭市| 辛集市| 文成县| 威海市| 佳木斯市|