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

springboot項(xiàng)目打包鏡像方式以及區(qū)分環(huán)境打包的方法

 更新時間:2024年03月04日 10:22:40   作者:皮卡沖撞  
本文主要介紹了springboot項(xiàng)目打包鏡像方式以及區(qū)分環(huán)境打包的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

方法一:將項(xiàng)目jar包手動推送到docker服務(wù)器上

1.用maven對項(xiàng)目進(jìn)行打包,打包成功后會有一個target目錄,目錄下有打好的項(xiàng)目jar包

2.將jar包上傳到服務(wù)器上,我用的是finalshell工具,大家可以自己根據(jù)自己使用的工具將文件傳送到服務(wù)器上

3.在跟jar包同級目錄下寫Dockerfile文件

dockerfile文件具體內(nèi)容

FROM openjdk:11  #基于哪些鏡像進(jìn)行構(gòu)建
MAINTAINER gpj #作者名稱
#
# 將jar包添加到容器中,并命名為 springboot_docker.jar
ADD demo-0.0.1-SNAPSHOT.jar /demo.jar
# 運(yùn)行jar包
RUN bash -c 'touch demo.jar'
ENTRYPOINT ["java", "-jar", "demo.jar"]

# 設(shè)置時區(qū)
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

# SpringBoot項(xiàng)目配置的端口號為9999,需要將9999暴露出去 
EXPOSE 9999

4.執(zhí)行docker build命令

docker build -f Dockerfile -t demo:1.0 .

5.查看鏡像

docker images

可以看到剛剛打包的鏡像

6.運(yùn)行容器

docker run -d --name dmeo -p 9999:9999 demo:1.0

查看容器是否在運(yùn)行

docker ps

服務(wù)器開放9999端口

firewall-cmd --zone=public --add-port=9999/tcp --permanent

systemctl restart firewalld

調(diào)用后端方法

方法二:在idea中安裝docker插件,通過插件部署

1.安裝docker插件

進(jìn)入項(xiàng)目,點(diǎn)擊File->Settings->Plugins,docker插件是默認(rèn)安裝上的,可以先去Installed中查看是否已經(jīng)安裝

如果未安裝可以點(diǎn)擊Marketplace,在搜索框中搜索docker,點(diǎn)擊Installed進(jìn)行安裝

2.打開docker遠(yuǎn)程訪問

修改docker.service文件

Docker 安裝成功之后,首先需要修改 Docker 配置來開啟允許遠(yuǎn)程訪問 Docker 的功能。

文件位置:/lib/systemd/system/docker.service

修改內(nèi)容: 加入如下內(nèi)容:

DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"

服務(wù)器開放2375端口

firewall-cmd --zone=public --add-port=2375/tcp --permanent

systemctl restart firewalld

重啟docker

systemctl daemon-reload

systemctl restart docker

3.在idea的docker插件中配置docker遠(yuǎn)程訪問的地址

在idea項(xiàng)目中點(diǎn)擊File->settings->Build->Docker

4.在項(xiàng)目根目錄和pom文件同級的地方寫Dockerfile文件

dockerfile文件的具體內(nèi)容

FROM openjdk:11
MAINTAINER jyz
#
# 將jar包添加到容器中,并命名為 springboot_docker.jar
ADD demo-0.0.1-SNAPSHOT.jar /demo.jar
# 運(yùn)行jar包
RUN bash -c 'touch demo.jar'
ENTRYPOINT ["java", "-jar", "demo.jar"]
# 設(shè)置時區(qū)
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
# SpringBoot項(xiàng)目配置的端口號為9999,需要將9999暴露出去
EXPOSE 9999

5.在啟動配置那里編輯docker配置

之后點(diǎn)擊執(zhí)行

可以根據(jù)方法一中的最后兩步進(jìn)行驗(yàn)證

方法三:用maven插件進(jìn)行構(gòu)建

開啟docker遠(yuǎn)程訪問,詳細(xì)步驟見方法二

將dockerfile文件放到resource文件夾下

1.在pom文件中引入docker插件

pom文件詳細(xì)內(nèi)容

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.12.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>demo</description>
    <properties>
        <java.version>11</java.version>
        <docker-ip>服務(wù)器IP</docker-ip>
        <docker-url>http://${docker-ip}:2375</docker-url>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <finalName>${project.artifactId}-${project.version}</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.2.2</version>
                <configuration>
                    <dockerHost>${docker-url}</dockerHost>
                    <imageName>${project.artifactId}:${project.version}</imageName>
                    <!-- 在生成圖像后將其推入的標(biāo)志。默認(rèn)為false -->
                    <pushImage>true</pushImage>
                    <imageTags>
                        <!-- 指定鏡像標(biāo)簽,可以排至多個標(biāo)簽 -->
                        <imageTag>${project.version}</imageTag>
                    </imageTags>
                    <!--是否強(qiáng)制覆蓋已有鏡像-->
                    <forceTags>true</forceTags>
                    <!--方式一:1、指定Dockerfile文件所在目錄,通過文件執(zhí)行打包上傳nexus私服-->
                    <dockerDirectory>src/main/resources</dockerDirectory>
                    <!-- 指定docker鏡像打包參數(shù),即dockerfile中使用的參數(shù),通過${參數(shù)名}取值 -->
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <!--指定需要復(fù)制的根目錄,${project.build.directory}表示target目錄-->
                            <directory>${project.build.directory}</directory>
                            <!--用于指定需要復(fù)制的文件,${project.build.finalName}.jar表示打包后的jar包文件-->
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

2.運(yùn)行mvn build命令

mvn docker:build

成功打包成鏡像

可以根據(jù)方法一中的最后兩步進(jìn)行驗(yàn)證

基于第三步的配置進(jìn)行鏡像區(qū)分環(huán)境

以下文件需要配置到pom文件中,這里的配置每一個profile標(biāo)簽都是獨(dú)立的,只有在打包的時候才會用到,也就是執(zhí)行 mvn命令時通過 -P這個指令指定profile標(biāo)簽的id那么打包所用的一些參數(shù)配置會以你制定的profile為準(zhǔn)。

    <profiles>
        <profile>
            <!--不同環(huán)境Profile的唯一id-->
            <id>dev</id>
            <properties>
                <!--profiles.active是自定義的字段(名字隨便起),自定義字段可以有多個-->
                <profiles.active>dev</profiles.active>
            </properties>
        </profile>
        <profile>
            <id>prod</id>
            <!--properties標(biāo)簽下定義的標(biāo)簽是個性化的,根據(jù)業(yè)務(wù)項(xiàng)目需要定制不同標(biāo)簽,-->
            <properties>
                <profiles.active>prod</profiles.active>
                <docker-url>服務(wù)器IP:2375</docker-url>
            </properties>
        </profile>
        <profile>
            <id>test</id>
            <properties>
                <profiles.active>test</profiles.active>
                <docker-url>服務(wù)器IP:2375</docker-url>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
    </profiles>

此時把之前在pom中<properties>定義的docker-url刪除,在執(zhí)行mvn打包鏡像命令時添加 -P

<!--這里如果鏡像統(tǒng)一都是由一個docker服務(wù)器打包的話,在鏡像的名字中添加上test或者prod,再或者其他標(biāo)識不同環(huán)境的信息即可,我這里是使用的profiles.active作區(qū)分,對應(yīng)的是我上面聲明的環(huán)境信息-->
<imageName>${project.artifactId}-${profiles.active}:${project.version}</imageName>
mvn -Ptest docker:build

到此這篇關(guān)于springboot項(xiàng)目打包鏡像方式以及區(qū)分環(huán)境打包的方法的文章就介紹到這了,更多相關(guān)springboot 打包鏡像內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • java程序代碼與文本對比實(shí)用工具簡介

    java程序代碼與文本對比實(shí)用工具簡介

    可以對兩段文本進(jìn)行對比,檢測/比較兩個文本有什么不同的差異,以便修改,常用于程序代碼,就是不需要人工查看,尤其是大文件,有幾百上千行的代碼,這時候就建議使用比較工具了,不用浪費(fèi)過多時間去尋找
    2021-09-09
  • 圖解Java排序算法之快速排序的三數(shù)取中法

    圖解Java排序算法之快速排序的三數(shù)取中法

    這篇文章主要為大家詳細(xì)介紹了Java排序算法之快速排序的三數(shù)取中法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 如何解決springmvc文件下載,內(nèi)容損壞的問題

    如何解決springmvc文件下載,內(nèi)容損壞的問題

    這篇文章主要介紹了解決springmvc文件下載,內(nèi)容損壞的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • MyBatis-plus處理存儲json數(shù)據(jù)過程

    MyBatis-plus處理存儲json數(shù)據(jù)過程

    文章介紹MyBatis-Plus 3.4.21處理對象與集合的差異:對象可用內(nèi)置Handler配合autoResultMap,集合需自定義處理器繼承FastjsonTypeHandler并重寫parse方法,同時需明確指定類類型及XML中的resultMap以解決轉(zhuǎn)換問題
    2025-08-08
  • Java?Http請求方式之RestTemplate常用方法詳解

    Java?Http請求方式之RestTemplate常用方法詳解

    這篇文章主要為大家介紹了Java?Http請求方式之RestTemplate常用方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Spring Data分頁與排序的實(shí)現(xiàn)方法

    Spring Data分頁與排序的實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于Spring Data分頁與排序的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • 詳解如何繼承Mybatis中Mapper.xml文件

    詳解如何繼承Mybatis中Mapper.xml文件

    這篇文章主要為大家介紹了詳解如何繼承Mybatis中Mapper.xml文件,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Java8 Stream中間操作實(shí)例解析

    Java8 Stream中間操作實(shí)例解析

    這篇文章主要介紹了Java8 Stream中間操作實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • Java中wait()與sleep()兩者的不同深入解析

    Java中wait()與sleep()兩者的不同深入解析

    在Java多線程編程中,wait()和sleep()是控制線程執(zhí)行和等待的兩個關(guān)鍵方法,但它們在應(yīng)用場景和實(shí)現(xiàn)上有顯著差異,這篇文章主要介紹了Java中wait()與sleep()兩者的不同,需要的朋友可以參考下
    2024-11-11
  • Spring請求路徑帶參數(shù)URL使用注解的寫法說明

    Spring請求路徑帶參數(shù)URL使用注解的寫法說明

    這篇文章主要介紹了Spring請求路徑帶參數(shù)URL使用注解的寫法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評論

东方市| 双桥区| 拉萨市| 临江市| 漳浦县| 工布江达县| 仲巴县| 繁昌县| 开原市| 汝南县| 雷波县| 香格里拉县| 乌兰察布市| 通辽市| 高雄县| 榆树市| 峨眉山市| 新巴尔虎左旗| 和静县| 台南县| 义马市| 江川县| 潍坊市| 巴塘县| 屏东县| 徐闻县| 吉林市| 洞头县| 峡江县| 山东省| 磐石市| 隆子县| 北川| 南城县| 临颍县| 保山市| 自贡市| 襄城县| 霞浦县| 明光市| 晋州市|