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

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

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

方法一:將項目jar包手動推送到docker服務器上

1.用maven對項目進行打包,打包成功后會有一個target目錄,目錄下有打好的項目jar包

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

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

dockerfile文件具體內容

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

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

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

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

docker build -f Dockerfile -t demo:1.0 .

5.查看鏡像

docker images

可以看到剛剛打包的鏡像

6.運行容器

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

查看容器是否在運行

docker ps

服務器開放9999端口

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

systemctl restart firewalld

調用后端方法

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

1.安裝docker插件

進入項目,點擊File->Settings->Plugins,docker插件是默認安裝上的,可以先去Installed中查看是否已經安裝

如果未安裝可以點擊Marketplace,在搜索框中搜索docker,點擊Installed進行安裝

2.打開docker遠程訪問

修改docker.service文件

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

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

修改內容: 加入如下內容:

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

服務器開放2375端口

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

systemctl restart firewalld

重啟docker

systemctl daemon-reload

systemctl restart docker

3.在idea的docker插件中配置docker遠程訪問的地址

在idea項目中點擊File->settings->Build->Docker

4.在項目根目錄和pom文件同級的地方寫Dockerfile文件

dockerfile文件的具體內容

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

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

之后點擊執(zhí)行

可以根據方法一中的最后兩步進行驗證

方法三:用maven插件進行構建

開啟docker遠程訪問,詳細步驟見方法二

將dockerfile文件放到resource文件夾下

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

pom文件詳細內容

<?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>服務器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>
                    <!-- 在生成圖像后將其推入的標志。默認為false -->
                    <pushImage>true</pushImage>
                    <imageTags>
                        <!-- 指定鏡像標簽,可以排至多個標簽 -->
                        <imageTag>${project.version}</imageTag>
                    </imageTags>
                    <!--是否強制覆蓋已有鏡像-->
                    <forceTags>true</forceTags>
                    <!--方式一:1、指定Dockerfile文件所在目錄,通過文件執(zhí)行打包上傳nexus私服-->
                    <dockerDirectory>src/main/resources</dockerDirectory>
                    <!-- 指定docker鏡像打包參數,即dockerfile中使用的參數,通過${參數名}取值 -->
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <!--指定需要復制的根目錄,${project.build.directory}表示target目錄-->
                            <directory>${project.build.directory}</directory>
                            <!--用于指定需要復制的文件,${project.build.finalName}.jar表示打包后的jar包文件-->
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

2.運行mvn build命令

mvn docker:build

成功打包成鏡像

可以根據方法一中的最后兩步進行驗證

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

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

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

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

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

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

相關文章

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

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

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

    圖解Java排序算法之快速排序的三數取中法

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

    如何解決springmvc文件下載,內容損壞的問題

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

    MyBatis-plus處理存儲json數據過程

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

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

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

    Spring Data分頁與排序的實現方法

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

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

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

    Java8 Stream中間操作實例解析

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

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

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

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

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

最新評論

垫江县| 南京市| 柳州市| 汽车| 邻水| 扶余县| 洛隆县| 通辽市| 汝州市| 名山县| 尼玛县| 琼海市| 平武县| 姚安县| 阳曲县| 河池市| 合作市| 盐山县| 昌吉市| 马龙县| 隆回县| 孝感市| 新巴尔虎左旗| 丽水市| 呼图壁县| 海南省| 磐石市| 同心县| 洛隆县| 乳山市| 盐山县| 刚察县| 嘉善县| 双流县| 那曲县| 克什克腾旗| 扎鲁特旗| 惠来县| 静海县| 繁峙县| 炉霍县|