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

SpringBoot打包成Docker鏡像的項(xiàng)目實(shí)踐

 更新時(shí)間:2024年03月08日 11:42:55   作者:萬(wàn)山寒  
Spring Boot和Docker,可以方便地將應(yīng)用程序部署到不同的環(huán)境中,本文主要介紹了SpringBoot打包成Docker鏡像的項(xiàng)目實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下

dockerFile編寫(xiě)

普通dockerFile

FROM java:8
#此處的*為正則表達(dá)式,表示以.jar結(jié)尾的同步錄下的文件(這里的jar是maven打包好的)
COPY *.jar /app.jar

CMD ["--server.port=8080"]
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]

這種方法有缺點(diǎn):

  • 鏡像中的jar包是壓縮文件,在容器環(huán)境中運(yùn)行需要解壓,造成比較大的開(kāi)銷
  • 將依賴和程序都放在一個(gè)層中,更新程序后編譯新的鏡像效率低。一般來(lái)說(shuō),依賴是基本不變的,只需要更新程序代碼。

spring官方推薦,構(gòu)建鏡像時(shí),不要直接使用壓縮的jar,而應(yīng)該解壓后構(gòu)建鏡像。

解壓方式打包的dockerFile的編寫(xiě)有版本分界線:springboot-2.3,在2.3以后的版本中,可以使用spring-boot-jarmode-layertools來(lái)幫助解壓構(gòu)建。

2.3之前,需要手動(dòng)分層解壓

將spring-boot項(xiàng)目打成jar包

將jar解壓到target/dependency

dockerFile文件

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG DEPENDENCY=target/dependency # jar包解壓位置
COPY ${DEPENDENCY}/BOOT-INF/lib /app/lib
COPY ${DEPENDENCY}/META-INF /app/META-INF
COPY ${DEPENDENCY}/BOOT-INF/classes /app
ENTRYPOINT ["java","-cp","app:app/lib/*","com.example.MyApplication"]

2.3以后

使用spring-boot-jarmode-layertools,更加方便

# 指定基礎(chǔ)鏡像,這是分階段構(gòu)建的前期階段
FROM openjdk:8 as builder
# 執(zhí)行工作目錄
WORKDIR application
# 配置參數(shù)
ARG JAR_FILE=target/*.jar
# 將編譯構(gòu)建得到的jar文件復(fù)制到鏡像空間中
COPY ${JAR_FILE} application.jar
# 通過(guò)工具spring-boot-jarmode-layertools 從application.jar 中提取拆分后的構(gòu)建結(jié)果
RUN java -Djarmode=layertools -jar application.jar extract

# 正式構(gòu)建鏡像
FROM openjdk:8
WORKDIR application
# 前一階段從jar中提取除了多個(gè)文件,這里分別執(zhí)行COPY命令將他們復(fù)制到鏡像空間中,每次COPY都是一個(gè)layer
COPY --from=builder application/dependencies/ ./
COPY --from=builder application/spring-boot-loader/ ./
COPY --from=builder application/snapshot-dependencies/ ./
COPY --from=builder application/application/ ./
ENTRYPOINT ["java","-Duser.timezone=GMT+8","org.springframework.boot.loader.JarLauncher"]

使用dockerFile打包鏡像

# '-t' 設(shè)置打包鏡像tag, '-f' 設(shè)置DockerFile文件, '.'選擇當(dāng)前目錄
docker build -t test:1.0 -f .\DockerFile . 

到此這篇關(guān)于SpringBoot打包成Docker鏡像的項(xiàng)目實(shí)踐的文章就介紹到這了,更多相關(guān)SpringBoot打包成Docker鏡像內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • docker容器在uos-12038.101上啟動(dòng)報(bào)錯(cuò)的解決辦法

    docker容器在uos-12038.101上啟動(dòng)報(bào)錯(cuò)的解決辦法

    這篇文章主要介紹了docker容器在uos-12038.101上啟動(dòng)報(bào)錯(cuò)的問(wèn)題,解決方案是需要在/etc/systemd/system/或者 /usr/lib/systemd/system/
    找到docker.service文件,在ExecStart=/usr/bin/dockerd后面添加 --default-ulimit nofile=65536:65536參數(shù),需要的朋友可以參考下
    2024-03-03
  • 詳解docker pull下來(lái)的鏡像存儲(chǔ)在哪里

    詳解docker pull下來(lái)的鏡像存儲(chǔ)在哪里

    這篇文章主要介紹了詳解docker pull下來(lái)的鏡像存儲(chǔ)在哪里,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Docker使用自定義網(wǎng)橋

    Docker使用自定義網(wǎng)橋

    這篇文章主要為大家詳細(xì)介紹了Docker使用自定義網(wǎng)橋的相關(guān)資料 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • docker配置skywalking 監(jiān)控springcloud應(yīng)用的詳細(xì)步驟

    docker配置skywalking 監(jiān)控springcloud應(yīng)用的詳細(xì)步驟

    本文分步驟給大家講解docker配置skywalking 監(jiān)控springcloud應(yīng)用的方法,感興趣的朋友一起看看吧
    2025-04-04
  • 使用docker -v 和 Publish over SSH插件實(shí)現(xiàn)war包自動(dòng)部署到docker的操作步驟

    使用docker -v 和 Publish over SSH插件實(shí)現(xiàn)war包自動(dòng)部署到docker的操作步驟

    這篇文章主要介紹了利用docker -v 和 Publish over SSH插件實(shí)現(xiàn)war包自動(dòng)部署到docker的操作步驟,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • Docker啟動(dòng)gitlab后22端口被占用如何解決

    Docker啟動(dòng)gitlab后22端口被占用如何解決

    本文主要介紹了Docker啟動(dòng)gitlab后22端口被占用如何解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • Docker配置本地鏡像與容器的存儲(chǔ)位置

    Docker配置本地鏡像與容器的存儲(chǔ)位置

    最近在學(xué)習(xí)docker,本文主要介紹了Docker配置本地鏡像與容器的存儲(chǔ)位置,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Docker 數(shù)據(jù)卷權(quán)限實(shí)例詳解

    Docker 數(shù)據(jù)卷權(quán)限實(shí)例詳解

    這篇文章主要介紹了Docker 數(shù)據(jù)卷權(quán)限實(shí)例詳解的相關(guān)資料,在運(yùn)行Docker 容器的時(shí)候需要添加權(quán)限,這里就給大家舉例說(shuō)明如何實(shí)現(xiàn),需要的朋友可以參考下
    2016-11-11
  • Docker Compose使用手冊(cè)之場(chǎng)景、文件與命令詳解

    Docker Compose使用手冊(cè)之場(chǎng)景、文件與命令詳解

    DockerCompose是Docker官方的多容器應(yīng)用管理和編排工具,它簡(jiǎn)化了多容器應(yīng)用的部署和管理,支持一鍵啟動(dòng)、停止服務(wù),配置服務(wù)依賴和環(huán)境變量,管理網(wǎng)絡(luò)和卷等,下面小編就和大家詳細(xì)介紹一下Docker Compose的使用場(chǎng)景、文件與命令吧
    2026-05-05
  • docker 免root權(quán)限登陸的解決方案

    docker 免root權(quán)限登陸的解決方案

    這篇文章主要介紹了docker 免root權(quán)限登陸的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03

最新評(píng)論

资阳市| 阿克苏市| 长子县| 泽库县| 东港市| 沈丘县| 梁平县| 西丰县| 榕江县| 会理县| 渝北区| 公主岭市| 海原县| 濉溪县| 罗城| 崇明县| 祁连县| 宝清县| 宁乡县| 安塞县| 屏东县| 勃利县| 宜阳县| 丹凤县| 弥渡县| 洛南县| 和平县| 荆州市| 金堂县| 河北省| 黄大仙区| 葵青区| 独山县| 开江县| 商水县| 新蔡县| 克拉玛依市| 海林市| 鹤山市| 娱乐| 察哈|