亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

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

3.在跟jar包同級(jí)目錄下寫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è)置時(shí)區(qū)
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

# SpringBoot項(xiàng)目配置的端口號(hào)為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文件同級(jí)的地方寫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è)置時(shí)區(qū)
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
# SpringBoot項(xiàng)目配置的端口號(hào)為9999,需要將9999暴露出去
EXPOSE 9999

5.在啟動(dòng)配置那里編輯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)簽,可以排至多個(gè)標(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文件中,這里的配置每一個(gè)profile標(biāo)簽都是獨(dú)立的,只有在打包的時(shí)候才會(huì)用到,也就是執(zhí)行 mvn命令時(shí)通過 -P這個(gè)指令指定profile標(biāo)簽的id那么打包所用的一些參數(shù)配置會(huì)以你制定的profile為準(zhǔn)。

    <profiles>
        <profile>
            <!--不同環(huán)境Profile的唯一id-->
            <id>dev</id>
            <properties>
                <!--profiles.active是自定義的字段(名字隨便起),自定義字段可以有多個(gè)-->
                <profiles.active>dev</profiles.active>
            </properties>
        </profile>
        <profile>
            <id>prod</id>
            <!--properties標(biāo)簽下定義的標(biāo)簽是個(gè)性化的,根據(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>

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

<!--這里如果鏡像統(tǒng)一都是由一個(gè)docker服務(wù)器打包的話,在鏡像的名字中添加上test或者prod,再或者其他標(biāo)識(shí)不同環(huán)境的信息即可,我這里是使用的profiles.active作區(qū)分,對(duì)應(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • 詳解Java的閉包

    詳解Java的閉包

    這篇文章主要介紹了詳解Java的閉包,作者從Lambda和默認(rèn)方法等重要特性深入講解,極力推薦!需要的朋友可以參考下
    2015-07-07
  • java實(shí)現(xiàn)簡單聊天室單人版

    java實(shí)現(xiàn)簡單聊天室單人版

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡單聊天室的單人版,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • SpringBoot文件分片上傳的示例代碼

    SpringBoot文件分片上傳的示例代碼

    分片上傳在很多地方都可以使用的到,本文主要介紹了SpringBoot文件分片上傳的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 在RedHat系統(tǒng)上安裝JDK與Tomcat的步驟

    在RedHat系統(tǒng)上安裝JDK與Tomcat的步驟

    這篇文章主要介紹了在RedHat系統(tǒng)上安裝Java與Tomcat的步驟,同樣適用于CentOS等RedHat系的Linux系統(tǒng),需要的朋友可以參考下
    2015-11-11
  • Java TimedCache 帶時(shí)間緩存工具類詳解使用

    Java TimedCache 帶時(shí)間緩存工具類詳解使用

    工具類是包含集合框架、遺留的 collection 類、事件模型、日期和時(shí)間設(shè)施、國際化和各種實(shí)用工具類(字符串標(biāo)記生成器、隨機(jī)數(shù)生成器和位數(shù)組、日期Date類、堆棧Stack類、向量Vector類等)。集合類、時(shí)間處理模式、日期工具等各類常用工具包,本文將介紹帶時(shí)間緩存工具類
    2021-10-10
  • SpringBoot報(bào)錯(cuò)Invalid?bound?statement?(not?found)問題排查和解決方案

    SpringBoot報(bào)錯(cuò)Invalid?bound?statement?(not?found)問題排查和解決方案

    這篇文章主要介紹了SpringBoot報(bào)錯(cuò)Invalid?bound?statement?(not?found)問題排查和解決方案,文中通過圖文結(jié)合的方式講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-03-03
  • 解決BeanUtils.copyProperties無法成功封裝的問題

    解決BeanUtils.copyProperties無法成功封裝的問題

    這篇文章主要介紹了解決BeanUtils.copyProperties無法成功封裝的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java Redis Redisson配置教程詳解

    Java Redis Redisson配置教程詳解

    這篇文章主要介紹了Java Redis Redisson配置教程,包括Session共享配置及其他Redisson的Config配置方式,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • Java中scheduleAtFixedRate的用法

    Java中scheduleAtFixedRate的用法

    如何正確使用Java中的scheduleAtFixedRate是一篇介紹Java中定時(shí)任務(wù)調(diào)度器的文章。它詳細(xì)介紹了scheduleAtFixedRate方法的用法、參數(shù)及作用,并給出了一些實(shí)例以幫助讀者更好地理解其使用。本文為Java開發(fā)人員提供了一些實(shí)用的技巧,幫助他們更好地管理和控制定時(shí)任務(wù)
    2023-04-04
  • 超個(gè)性修改SpringBoot項(xiàng)目的啟動(dòng)banner的方法

    超個(gè)性修改SpringBoot項(xiàng)目的啟動(dòng)banner的方法

    這篇文章主要介紹了超個(gè)性修改SpringBoot項(xiàng)目的啟動(dòng)banner的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03

最新評(píng)論