日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

詳解如何用SpringBoot 2.3.0.M1創建Docker映像

瀏覽:104日期:2023-05-17 09:32:15

1、發布

SpringBoot2.3.0.M1剛剛發布,它帶來了一些有趣的新特性,可以幫助您將SpringBoot應用程序打包到Docker映像中。在這篇博客文章中,我們將查看創建Docker映像的典型方式,并展示如何通過使用這些新特性來改進這些鏡像

2、說明

SpringBoot 2.3.0.M1 暫時不支持Windows, 很雞肋暫時在Mac 和Linux 上運行良好

3、常見的Docker 運行方式

一般情況下,通過docker 運行springboot 是這樣的

FROM openjdk:8-jdk-alpineEXPOSE 8080ARG JAR_FILE=target/my-application.jarADD ${JAR_FILE} app.jarENTRYPOINT ['java','-jar','/app.jar']

4、常規方式通過docker 運行springboot 存在的問題不是說常規方式不行,是他有一些可以改進的地方

1、在運行jar 的時候,沒把jar 給解壓縮,而是直接運行了,這會導致一些額外的開銷,所以呢,最好能以沒壓縮的形式去運行2、因為需要老是改代碼,然后重新運行,上面那個代碼就不那么的好用。因為你一般不會去修改依賴或者進行依賴升級這些操作,就是改改代碼,適應業務變化,所以呢,最好能分個層,這樣構建速度就快起來了

5、如何解決常規方式的不足呢

spring 提供了兩項技術

1、buildpack2、分層jar

如果您曾經使用過像CloudFoundry或Heroku這樣的應用程序平臺,那么你可能使用了一個buildpack,可能甚至沒有意識到它是BuildPack平臺的一部分,它將應用程序轉換為平臺實際可以運行的東西。例如,CloudFoundry的Javabuildpack會注意到您正在搞一個.jar文件并自動添加相關的JRE

最近呢,spring 擺脫了云本地構建包的一些束縛,讓不能獨立使用的這個東西呢,現在可以隨時隨地的構建與docker 兼容的docker 鏡像了。

6、到底怎么構建

Maven 方式

1、先下載一個包,然后解壓出來

$ curl https://start.spring.io/starter.zip -d bootVersion=2.3.0.M1 -d dependencies=web -o demo.zip$ unzip demo.zip

2、然后呢構建鏡像就行,但是要確保本地已經安裝了docker 才行

./mvnw spring-boot:build-image

3、你會看到這么一些日志

[INFO] Building image ’docker.io/library/demo:0.0.1-SNAPSHOT’[INFO][INFO] > Pulling builder image ’docker.io/cloudfoundry/cnb:0.0.43-bionic’ 100%[INFO] > Pulled builder image ’cloudfoundry/cnb@sha256:c983fb9602a7fb95b07d35ef432c04ad61ae8458263e7fb4ce62ca10de367c3b’[INFO] > Pulling run image ’docker.io/cloudfoundry/run:base-cnb’ 100%[INFO] > Pulled run image ’cloudfoundry/run@sha256:ba9998ae4bb32ab43a7966c537aa1be153092ab0c7536eeef63bcd6336cbd0db’[INFO] > Executing lifecycle version v0.5.0[INFO] > Using build cache volume ’pack-cache-5cbe5692dbc4.build’[INFO][INFO] > Running detector[INFO] [detector] 6 of 13 buildpacks participating...[INFO][INFO] > Running restorer[INFO] [restorer] Restoring cached layer ’org.cloudfoundry.openjdk:2f08c469c9a8adea1b6ee3444ba2a8242a7e99d87976a077faf037a9eb7f884b’...[INFO][INFO] > Running cacher[INFO] [cacher] Reusing layer ’org.cloudfoundry.openjdk:2f08c469c9a8adea1b6ee3444ba2a8242a7e99d87976a077faf037a9eb7f884b’[INFO] [cacher] Reusing layer ’org.cloudfoundry.jvmapplication:executable-jar’[INFO] [cacher] Caching layer ’org.cloudfoundry.springboot:spring-boot’[INFO] [cacher] Reusing layer ’org.cloudfoundry.springautoreconfiguration:46ab131165317d91fd4ad3186abf755222744e2d277dc413def06f3ad45ab150’[INFO][INFO] Successfully built image ’docker.io/library/demo:0.0.1-SNAPSHOT’

4、用docker 運行這個鏡像

docker run -it -p8080:8080 demo:0.0.1-SNAPSHOT

7、分層

SpringBoot提供的內置支持為開始使用內置包提供了一種很好的方式。因為它是buildpack平臺規范的實現,所以很容易遷移到更強大的buildpack工具

最基本的springboot 的jar 文件內部格式

META-INF/ MANIFEST.MForg/ springframework/ boot/ loader/ ...BOOT-INF/ classes/ ... lib/ ...

分成了三層,一個是引導加載文件,一個是class 運行文件,一個是依賴關系

但是分層結構的jar 呢,會是這樣的結構

META-INF/ MANIFEST.MForg/ springframework/ boot/ loader/ ...BOOT-INF/ layers/ <name>/ classes/ ... lib/ ... <name>/ classes/ ... lib/ ... layers.idx

他不再把lib 放到分開的獨立的層里面,而是放到一起去了,然后分了幾層。

并且多了一個 idx 文件,這個文件里面是添加層的順序

最開始呢,分了這么些層,一共四個

1、dependencies(用于定期發布的依賴項)

2、snapshot-dependencies(用于快照依賴項)

3、resources(用于靜態資源)

4、application(適用于應用程序類和資源)

這種分層是依據呢,是根據代碼可能的更改來分離代碼,一般呢,依賴項不太可能更改,因此他放在了獨立的層里面

8、寫分層形式的dockerfile

首先呢,需要在項目的POM 文件中增加一個支持

<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <layout>LAYERED_JAR</layout> </configuration> </plugin> </plugins></build>

jarmode是一個特殊的系統屬性,您可以在啟動JAR時設置它。它允許引導代碼運行與應用程序完全不同的東西。例如,提取層的東西

這樣就可以運行layertools 模式

java -Djarmode=layertools -jar my-app.jar

項目搞好了呢,就重新編譯打包

mvn clean package

打包好了呢,我們就測試一下

java -Djarmode=layertools -jar target/demo-0.0.1-SNAPSHOT.jar list

可以看到他輸出了幾個層

dependenciessnapshot-dependenciesresourcesapplication

我們現在寫一個dockerfile 來提取并復制這幾個層來構建鏡像

FROM adoptopenjdk:11-jre-hotspot as builderWORKDIR applicationARG JAR_FILE=target/*.jarCOPY ${JAR_FILE} application.jarRUN java -Djarmode=layertools -jar application.jar extractFROM adoptopenjdk:11-jre-hotspotWORKDIR applicationCOPY --from=builder application/dependencies/ ./COPY --from=builder application/snapshot-dependencies/ ./COPY --from=builder application/resources/ ./COPY --from=builder application/application/ ./ENTRYPOINT ['java', 'org.springframework.boot.loader.JarLauncher']

這是一個多階段的docker 文件,他builder 提取了需要的文件,就是前面我們拆掉的四個層。全給他弄進去

然后我們開始構建

docker build . --tag demo

構建完了,我們就跑他一下

docker run -it -p8080:8080 demo:latest

到此這篇關于詳解如何用SpringBoot 2.3.0.M1創建Docker映像的文章就介紹到這了,更多相關SpringBoot 2.3.0.M1創建Docker映像內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
一区久久精品| 国产探花在线精品一区二区| 欧美aa一级| 91亚洲人成网污www| 伊人久久视频| 欧美一区久久久| 99久久亚洲精品蜜臀| 欧美午夜精品一区二区三区电影| 婷婷激情久久| 国产麻豆综合| 少妇精品久久久一区二区| 日韩激情av在线| 国产欧美日韩一区二区三区四区 | 国产在线|日韩| 日韩精品首页| 午夜国产欧美理论在线播放| 亚洲一区区二区| 日韩久久一区| 精品国产亚洲日本| 色在线中文字幕| 91精品综合| 午夜欧美精品| 欧美在线综合| 欧美一区在线观看视频| 国产精品久久久久久久免费软件| 国产精品任我爽爆在线播放 | 日韩精品久久久久久| 欧美欧美黄在线二区| 国产极品模特精品一二| 成人精品久久| 亚洲特级毛片| 亚洲作爱视频| 综合国产精品| 麻豆精品在线观看| 久久精品影视| 婷婷五月色综合香五月| 麻豆精品在线播放| 亚洲国内欧美| 欧美日韩精品一区二区三区视频 | 久久夜夜操妹子| 亚洲欧美久久久| 国产欧美日韩在线一区二区 | 亚洲激情偷拍| 日本aⅴ精品一区二区三区| 精品视频在线观看网站| 伊人久久大香线蕉av不卡| 亚洲精品乱码| 国产v日韩v欧美v| 视频在线在亚洲| 国产极品一区| 日韩午夜免费| 国产suv精品一区二区四区视频| 免费毛片在线不卡| 国产欧美一区二区精品久久久| 电影91久久久| 水蜜桃久久夜色精品一区的特点| 久久99久久久精品欧美| 四虎影视精品| 欧美日本不卡| 欧美福利一区| 国产精品大片免费观看| 91九色精品国产一区二区| 欧美天堂一区| 亚洲激情黄色| 首页国产精品| 亚洲精品观看| 日韩精品免费一区二区三区| 欧美自拍一区| 91精品电影| 久久wwww| 只有精品亚洲| 欧美午夜精彩| 精品无人区麻豆乱码久久久| 免费人成在线不卡| 蜜臀国产一区| 欧美三级第一页| 日本 国产 欧美色综合| 亚洲人成在线网站| 国产探花一区在线观看| 91久久在线| 中文字幕在线官网| 国产精品一区二区三区美女 | 国产精品美女午夜爽爽| 午夜久久久久| 亚洲午夜天堂| 久久不见久久见免费视频7| 免费在线观看精品| 亚洲性图久久| 国产成人精品一区二区三区免费 | 国产九一精品| 亚洲狼人精品一区二区三区| 久久九九99| 国产精品国产一区| 欧美欧美黄在线二区| 日韩在线观看一区二区| 美女亚洲一区| 久久精品123| 最新中文字幕在线播放| 精品视频自拍| 免费日韩一区二区三区| 日韩av电影一区| 奶水喷射视频一区| 欧美网站在线| 久久精品国产www456c0m| 日韩av免费大片| 精品一区二区三区中文字幕| 久久国产乱子精品免费女| 亚洲有吗中文字幕| 免费黄网站欧美| 视频一区在线视频| 午夜在线播放视频欧美| 婷婷亚洲五月| 久久精品二区亚洲w码| 欧美一区成人| 日韩一区二区三区四区五区| 国产精品日韩| 亚洲精品99| 国产高清一区| 日韩亚洲国产欧美| 一区免费在线| 黄色日韩精品| 激情综合网址| 一区二区三区四区在线看| 91精品综合| 女人av一区| 午夜国产欧美理论在线播放| 国产二区精品| 久久国产精品99国产| 国产精品婷婷| 蜜臀av国产精品久久久久 | 香蕉国产精品| 99综合视频| 麻豆久久精品| 免费一区二区视频| 亚洲精品亚洲人成在线观看| 三级一区在线视频先锋| 综合亚洲自拍| 国产调教精品| 国产一区二区精品福利地址| 日韩欧美一区二区三区在线视频| 欧美日韩视频免费观看| 国内亚洲精品| 老鸭窝毛片一区二区三区| 综合精品一区| 国产调教精品| 久草免费在线视频| 欧美日韩中文字幕一区二区三区| 黄色成人91| 日本午夜精品视频在线观看| 久久av免费看| 色一区二区三区| 日韩视频精品在线观看| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美在线日韩| 国产精品成久久久久| 一区二区三区四区在线看| 蜜臀av国产精品久久久久| 欧美日韩一区二区三区四区在线观看 | 亚洲永久精品唐人导航网址| 91精品国产自产在线丝袜啪| 久久的色偷偷| 久久久久一区| 蜜桃一区二区三区在线观看| 国产精品尤物| 久久五月天小说| 午夜天堂精品久久久久| 国产精品国码视频| 日韩精品久久久久久久电影99爱| 美女尤物久久精品| 国产精品美女久久久久久不卡| 日韩电影免费在线观看| 亚洲一区二区三区高清不卡| 国产日韩欧美| 久久要要av| 久久国内精品自在自线400部| 精品国产91| 国产毛片久久| 久久一区亚洲| 久久xxxx| 精品欧美日韩精品| 伊人成人在线视频| 国产欧美日韩视频在线| 九九精品调教| 日韩精品一区二区三区中文 | 日韩欧美另类一区二区| 午夜亚洲福利| 久久久久久黄| 国产另类在线| 国产一区亚洲| 国产欧美激情| 欧美精品黄色| 精品亚洲精品| 亚洲专区视频| 日韩一区三区| 日韩精品成人| 国产精品hd| 亚洲一二三区视频| 日韩欧美网址| 国产欧美日韩精品高清二区综合区| 黑丝美女一区二区|