欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

dockerFile編寫

普通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)行需要解壓,造成比較大的開銷
  • 將依賴和程序都放在一個(gè)層中,更新程序后編譯新的鏡像效率低。一般來說,依賴是基本不變的,只需要更新程序代碼。

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

解壓方式打包的dockerFile的編寫有版本分界線:springboot-2.3,在2.3以后的版本中,可以使用spring-boot-jarmode-layertools來幫助解壓構(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
# 通過工具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部署Dashdot工具箱

    如何使用docker部署Dashdot工具箱

    dashdot是一個(gè)簡(jiǎn)潔清晰的服務(wù)器數(shù)據(jù)儀表板,基于React實(shí)現(xiàn) ,主要是顯示操作系統(tǒng)、進(jìn)程、存儲(chǔ)、內(nèi)存、網(wǎng)絡(luò)這五個(gè)的數(shù)據(jù),這篇文章主要介紹了如何使用docker部署Dashdot工具箱,需要的朋友可以參考下
    2024-02-02
  • Docker構(gòu)建簡(jiǎn)單的個(gè)人主頁網(wǎng)站實(shí)戰(zhàn)教程

    Docker構(gòu)建簡(jiǎn)單的個(gè)人主頁網(wǎng)站實(shí)戰(zhàn)教程

    Docker是一種開源容器化技術(shù),可以打包、發(fā)布和運(yùn)行應(yīng)用程序,本教程介紹了如何使用Docker構(gòu)建一個(gè)簡(jiǎn)單的個(gè)人主頁網(wǎng)站,通過編寫Dockerfile來自定義鏡像,并展示了如何通過傳入環(huán)境變量來動(dòng)態(tài)更改網(wǎng)頁內(nèi)容,項(xiàng)目使用的技術(shù)包括Docker、Alpine、Nginx、HTML、CSS和JavaScript
    2024-10-10
  • Linux安裝Docker詳細(xì)教程

    Linux安裝Docker詳細(xì)教程

    這篇文章介紹了Linux安裝Docker的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • docker pull很慢如何解決

    docker pull很慢如何解決

    這篇文章主要介紹了docker pull很慢的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Docker Compose快速部署多容器服務(wù)實(shí)戰(zhàn)的實(shí)例詳解

    Docker Compose快速部署多容器服務(wù)實(shí)戰(zhàn)的實(shí)例詳解

    使用 Docker Compose 可以輕松、高效的管理容器,它是一個(gè)用于定義和運(yùn)行多容器 Docker 的應(yīng)用程序工具,本文給大家介紹Docker Compose快速部署多容器服務(wù)實(shí)戰(zhàn),感興趣的朋友一起看看吧
    2022-02-02
  • Docker安裝阿里云服務(wù)器和在虛擬機(jī)安裝遇到的坑(問題小結(jié))

    Docker安裝阿里云服務(wù)器和在虛擬機(jī)安裝遇到的坑(問題小結(jié))

    這篇文章主要介紹了Docker安裝阿里云服務(wù)器和在虛擬機(jī)安裝遇到的坑,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • Docker?自定義Dev環(huán)境并部署php

    Docker?自定義Dev環(huán)境并部署php

    這篇文章主要介紹了Docker?自定義Dev環(huán)境(部署PHP),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01
  • docker修改容器的端口、容器名、映射地址以及注意事項(xiàng)

    docker修改容器的端口、容器名、映射地址以及注意事項(xiàng)

    在日常的docker運(yùn)維中,經(jīng)常遇到修改容器的端口、容器名、映射地址等信息,這篇文章主要給大家介紹了關(guān)于docker修改容器的端口、容器名、映射地址以及注意事項(xiàng)的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • 解決docker網(wǎng)絡(luò)錯(cuò)誤(network bridge not found)

    解決docker網(wǎng)絡(luò)錯(cuò)誤(network bridge not found)

    這篇文章主要介紹了解決docker網(wǎng)絡(luò)錯(cuò)誤(network bridge not found)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • docker-compose?up?-d遇到的問題及解決

    docker-compose?up?-d遇到的問題及解決

    這篇文章主要介紹了docker-compose?up?-d遇到的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03

最新評(píng)論