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

springboot項目docker分層構建的配置方式

 更新時間:2024年03月11日 11:26:05   作者:chenzfp  
在使用dockerfile構建springboot項目時,速度較慢,用時比較長,為了加快構建docker鏡像的速度,采用分層構建的方式,這篇文章主要介紹了springboot項目docker分層構建,需要的朋友可以參考下

一、需求場景

在使用dockerfile構建springboot項目時,速度較慢,用時比較長,為了加快構建docker鏡像的速度,采用分層構建的方式

二、構建配置

1、pom.xml配置

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <docker.plugin.version>0.43.4</docker.plugin.version>
        <docker.registry>reg.harborXXX.com</docker.registry>
        <docker.namespace>order</docker.namespace>
    </properties>
	<build>
        <finalName>order-xxx</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>io.fabric8</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>${docker.plugin.version}</version>
                <configuration>
                    <registry>${docker.registry}</registry>
                    <images>
                        <image>
                        	<name>${docker.registry}/${docker.namespace}/${project.build.finalName}:${project.version}</name>
                            <build>
                                <dockerFileDir>${project.basedir}</dockerFileDir>
                            </build>
                        </image>
                    </images>
                </configuration>
            </plugin>
        </plugins>
    </build>

2、Dockerfile

reg.harborXXX.com為自建harbor私服地址

自建私服參考:Docker倉庫管理鏡像 – 公共倉庫【Docker Hub】和私人倉庫【Registry】和【harbor】

# 分層構建, 加速增量構建
# 需配置host:{IP} reg.harborXXX.com
FROM reg.harborXXX.com/library/openjdk:8-ub as builder
WORKDIR app
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
RUN java -Djarmode=layertools -jar app.jar extract && rm app.jar
FROM reg.harborXXX.com/library/openjdk:8-ub
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ENV JAVA_OPTS=" -server -Xmx1024m -Xms256m -Xmn512m -Xss256k"
WORKDIR app
COPY --from=builder /app/dependencies/ ./
COPY --from=builder /app/spring-boot-loader/ ./
COPY --from=builder /app/snapshot-dependencies/ ./
COPY --from=builder /app/application/ ./
EXPOSE 9091
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS org.springframework.boot.loader.JarLauncher"]

這個Dockerfile使用了分層構建的方法來構建一個Spring Boot應用的Docker鏡像,目的是加速增量構建過程。以下是Dockerfile的解釋和一些可能的優(yōu)化建議:

分層構建解釋
基礎鏡像:這個Dockerfile定義了兩個階段的構建過程,都使用了相同的基礎鏡像reg.harborXXX.com/library/openjdk:8-ub。這個鏡像基于OpenJDK 8。

第一階段:構建階段 (as builder):在這個階段,它首先設置工作目錄為/app,然后復制Jar包到/app目錄并重命名為app.jar。接著,它使用Spring Bootlayertools來提取Jar包中的層(layer),然后刪除app.jar文件。

第二階段:最終鏡像:在這個階段,它再次設置工作目錄為/app,并從構建階段復制不同的層到當前工作目錄。通過這種方式,可以在代碼或依賴變更時只重新構建變更的層,從而加速構建過程。

環(huán)境變量和時區(qū)設置:設置時區(qū)為Asia/Shanghai,并配置Java虛擬機選項JAVA_OPTS。

端口和入口點:暴露9091端口,并設置容器啟動時的入口點為運行Spring Boot應用的命令。

到此這篇關于springboot項目docker分層構建的文章就介紹到這了,更多相關springboot項目docker分層構建內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • MyBatis-Plus數(shù)據(jù)權限插件的簡單使用

    MyBatis-Plus數(shù)據(jù)權限插件的簡單使用

    在MyBatis-Plus中,通過DataPermissionInterceptor插件實現(xiàn)數(shù)據(jù)權限控制,首先需要創(chuàng)建自定義注解和處理類,利用JSQLParser庫動態(tài)修改SQL,實現(xiàn)按角色權限過濾數(shù)據(jù),配置類中注冊攔截器,確保只有授權用戶能訪問指定數(shù)據(jù),感興趣的可以了解一下
    2024-10-10
  • Java注解中@Component和@Bean的區(qū)別

    Java注解中@Component和@Bean的區(qū)別

    這篇文章主要介紹了@Component和@Bean的區(qū)別,在這給大家簡單介紹下作用對象不同:@Component 注解作用于類,而 @Bean 注解作用于方法,具體實例代碼參考下本文
    2024-03-03
  • springboot通用分支處理超級管理員權限邏輯

    springboot通用分支處理超級管理員權限邏輯

    這篇文章主要為大家介紹了springboot通用分支處理超級管理員的權限邏輯,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • Java面試題沖刺第九天--MyBatis

    Java面試題沖刺第九天--MyBatis

    這篇文章主要為大家分享了最有價值的三道MyBatis框架面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結構和算法相關的題目、經(jīng)典面試編程題等,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 在Java中FreeMarker?模板來定義字符串模板

    在Java中FreeMarker?模板來定義字符串模板

    這篇文章主要介紹了在Java中FreeMarker?模板來定義字符串模板,文章基于Java的相關資料展開詳細內(nèi)容,需要的小伙伴可以參考一下
    2022-04-04
  • 示例解析java重載Overloading與覆蓋Overriding

    示例解析java重載Overloading與覆蓋Overriding

    這篇文章主要介紹了java重載Overloading與覆蓋Overriding的示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • Java并發(fā)編程中的ReentrantLock類詳解

    Java并發(fā)編程中的ReentrantLock類詳解

    這篇文章主要介紹了Java并發(fā)編程中的ReentrantLock類詳解,ReentrantLock是juc.locks包中的一個獨占式可重入鎖,相比synchronized,它可以創(chuàng)建多個條件等待隊列,還支持公平/非公平鎖、可中斷、超時、輪詢等特性,需要的朋友可以參考下
    2023-12-12
  • Java算法題常用函數(shù)詳解

    Java算法題常用函數(shù)詳解

    這篇文章主要介紹了Java中常用的字符串操作、字符串轉(zhuǎn)換、字符串處理、字符串緩沖區(qū)、棧、數(shù)組、列表、隊列、優(yōu)先隊列、Map和HashMap的常用函數(shù)和操作,感興趣的朋友跟隨小編一起看看吧
    2025-11-11
  • Spring?boot自定義加密解密數(shù)據(jù)庫連接配置示例代碼

    Spring?boot自定義加密解密數(shù)據(jù)庫連接配置示例代碼

    在Spring Boot項目中,為了保護數(shù)據(jù)庫連接信息的安全,通常需要對敏感信息進行加密,這篇文章主要介紹了Spring?boot自定義加密解密數(shù)據(jù)庫連接配置的相關資料,需要的朋友可以參考下
    2026-05-05
  • 淺談Java StringBuilder為什么線程不安全

    淺談Java StringBuilder為什么線程不安全

    這篇文章主要介紹了淺談Java StringBuilder為什么線程不安全,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09

最新評論

惠安县| 和平县| 龙口市| 宁乡县| 闸北区| 潢川县| 黄陵县| 新源县| 娱乐| 曲沃县| 马山县| 扎囊县| 贞丰县| 土默特右旗| 佳木斯市| 翁源县| 八宿县| 阳朔县| 九龙县| 莆田市| 临夏县| 阿拉善盟| 石柱| 萨嘎县| 栾川县| 怀仁县| 高陵县| 信丰县| 灯塔市| 汾西县| 凭祥市| 娱乐| 台中县| 乳源| 建德市| 四会市| 博湖县| 龙口市| 南溪县| 剑阁县| 奇台县|