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

SpringBoot+Docker+IDEA實(shí)現(xiàn)一鍵構(gòu)建+推送、運(yùn)行、同鏡像多容器啟動(dòng)

 更新時(shí)間:2021年04月25日 10:00:34   作者:歸來時(shí)仍是少年  
這篇文章主要介紹了SpringBoot+Docker+IDEA實(shí)現(xiàn)一鍵構(gòu)建+推送、運(yùn)行、同鏡像多容器啟動(dòng),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

場(chǎng)景:

由于公司項(xiàng)目需要,需要使用部署微服務(wù)項(xiàng)目,而之前都是使用tomcat部署,操作十分繁瑣。最近正好在學(xué)習(xí)Docker,利用Docker容器做部署嘗試

需求:

  • 使用Docker部署服務(wù)
  • 支持idea插件,一鍵操作構(gòu)建、推送鏡像、運(yùn)行
  • 單個(gè)鏡像需根據(jù)不同端口部署多個(gè)容器
  • 日志持久化

必要軟件

服務(wù)器(我的版本為CentOS:7.9)

  • Docker(需要開通遠(yuǎn)程訪問,正式環(huán)境請(qǐng)使用證書加密,我這里測(cè)試用無加密)
  • Harbor 鏡像倉庫(可選)

開發(fā)端

  • Docker Desktop (支持本地運(yùn)行docker-compose,如果不用docker-compose插件可以不用) 下載地址
  • 桌面版docker必要插件 下載地址
  • docker-comopse 下載地址
  • IDEA(廢話)docker插件 (可選,在idea插件市場(chǎng)下載,名字就叫Docker)

在idea中配置docker

配置

目錄結(jié)構(gòu):

目錄結(jié)構(gòu)

父項(xiàng)目配置(關(guān)鍵配置):

pom.xml

<properties>
    <!-- docker主機(jī)ip(這里填寫自己docker所在地址) -->
    <docker.host>192.168.10.10</docker.host>
    <!-- harbor倉庫地址(可選,構(gòu)建鏡像后自動(dòng)上傳到該倉庫) -->
    <docker.repostory>${docker.host}</docker.repostory>
    <!-- docker遠(yuǎn)程地址, 如果是https協(xié)議則將http換成https即可 -->
    <docker.remote>http://${docker.host}:2375</docker.remote>
    <!--項(xiàng)目名,需要和Harbor中的項(xiàng)目名稱保持一致 -->
    <docker.registry.name>library</docker.registry.name>
    <!-- 默認(rèn)端口 -->
    <port>8080</port>
</properties>

... 

<build>
    <pluginManagement>
        <plugins>
            <!--構(gòu)建鏡像-->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.2.0</version>
                <configuration>
                    <!--Maven 的配置文件 setting.xml 中增加相關(guān) server 配置,主要配置 Docker registry用戶認(rèn)-->
                    <serverId>docker-harbor</serverId>
                    <dockerHost>${docker.remote}</dockerHost>
                    <!-- 鏡像名格式:   倉庫地址/倉庫項(xiàng)目名/當(dāng)前項(xiàng)目名   (按需修改) -->
                    <imageName>${docker.repostory}/${docker.registry.name}/${project.artifactId}</imageName>
                    <baseImage>openjdk:8u282-jdk</baseImage>
                    <maintainer>作者</maintainer>
                    <env>
                        <PORT>8080</PORT>
                        <TZ>Asia/Shanghai</TZ>
                    </env>
                    <!-- 這里的ln和后面的操作是保證時(shí)間同步 -->
                    <runs>mkdir -p /epark/logs &amp;&amp; ln -sf /usr/share/zoneinfo/$TZ /etc/localtime &amp;&amp; echo $TZ > /etc/timezone</runs>
                    <volumes>/epark</volumes>
                    <!--suppress UnresolvedMavenProperty -->
                    <entryPoint>["java","-Djava.security.egd=file:/dev/./urandom","-jar","${project.build.finalName}.jar","--server.port=${PORT}"]
                    </entryPoint>
					<!-- 這里是倉庫地址,不需要可以刪除 -->
                    <registryUrl>http://${docker.repostory}</registryUrl>
                    <!-- 這里指定是否構(gòu)建成功后自動(dòng)推送到倉庫,不需要可以刪除 -->
                    <pushImage>true</pushImage>
                    <resources>
                        <resource>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
            <!-- docker-compose的maven插件 -->
            <plugin>
                <groupId>com.dkanejs.maven.plugins</groupId>
                <artifactId>docker-compose-maven-plugin</artifactId>
                <version>2.5.1</version>
                <configuration>
                	<!-- 路徑為: 當(dāng)前項(xiàng)目的上一級(jí)(也就是父項(xiàng)目),所以不支持二級(jí)以上的子項(xiàng)目 -->
                    <composeFile>${project.basedir}/../docker-compose.yml</composeFile>
                    <apiVersion>1.22</apiVersion>
                    <host>${docker.remote}</host>
                    <envVars>
                        <!-- 默認(rèn)端口 -->
                        <port>${port}</port>
                        <host>${docker.repostory}</host>
                        <name>${project.build.finalName}</name>
                        <!-- 自定義項(xiàng)目名,支持單鏡像啟動(dòng)多容器的關(guān)鍵 -->
                        <COMPOSE_PROJECT_NAME>${project.build.finalName}-${port}</COMPOSE_PROJECT_NAME>
                        <!-- 這里是證書配置,如果開啟了docker證書,則需要配置 -->
<!--                            <DOCKER_TLS_VERIFY>1</DOCKER_TLS_VERIFY>-->
<!--                            <DOCKER_CERT_PATH>D:\docker-ca</DOCKER_CERT_PATH>-->
                    </envVars>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

注意,${project.artifactId}引用的項(xiàng)目構(gòu)件ID只能是小寫

docker-compose.yml

version: '3.4'
services:
  eparking:
    # 鏡像
    image: ${host}/library/${name}:latest
    # 容器名
    container_name: ${name}-${port}
    # 開機(jī)自啟(自選)
    #restart: always
    # 環(huán)境配置
    environment:
      # 端口
      - PORT=${port}
    # 端口映射
    ports:
      - "${port}:${port}"
    # 卷映射,這里日志根據(jù)自己項(xiàng)目輸出位置調(diào)整
    volumes:
      - "/log/${name}/${port}:/logs/"

配置了倉庫的話需要配置Maven的settings.xml的賬號(hào)密碼

<servers>
    <server>
        <id>docker-harbor</id>
        <username>倉庫用戶名</username>
        <password>倉庫密碼</password>
    </server>
</servers>

子項(xiàng)目配置(關(guān)鍵配置)

pom.xml

<!-- 這里配置的端口會(huì)傳入父項(xiàng)目,最終傳入docker-compose.yml和Dockerfile文件 -->
<!-- 如果需要單個(gè)鏡像啟動(dòng)多個(gè)容器,改這里的端口再啟動(dòng)就可以了 -->
<properties>
	<port>8082</port>
</properties>

... 

<build>
    <plugins>
    	<!-- docker插件 -->
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
        </plugin>
        <!-- docker-compose的maven插件,由于docker插件不支持運(yùn)行,所以單獨(dú)安裝了 -->
        <plugin>
            <groupId>com.dkanejs.maven.plugins</groupId>
            <artifactId>docker-compose-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

如果一切順利maven中會(huì)出現(xiàn)docker和docker-compse插件
先執(zhí)行docker:build構(gòu)建,再執(zhí)行docker-compose:up啟動(dòng)

maven插件

成功后可以查看docker容器啟動(dòng)情況了,我這里使用的是docker插件

docker插件

到此這篇關(guān)于SpringBoot+Docker+IDEA實(shí)現(xiàn)一鍵構(gòu)建+推送、運(yùn)行、同鏡像多容器啟動(dòng)的文章就介紹到這了,更多相關(guān)SpringBoot+Docker+IDEA一鍵構(gòu)建內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java?Rabbitmq中四種集群架構(gòu)的區(qū)別詳解

    Java?Rabbitmq中四種集群架構(gòu)的區(qū)別詳解

    這篇文章主要為大家詳細(xì)介紹了Java?Rabbitmq中四種集群架構(gòu)的區(qū)別,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • JDK(免安裝)各種版本下載及配置詳細(xì)圖文教程

    JDK(免安裝)各種版本下載及配置詳細(xì)圖文教程

    這篇文章主要給大家介紹了關(guān)于JDK(免安裝)各種版本下載及配置的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-07-07
  • java實(shí)現(xiàn)CSV 字段分割

    java實(shí)現(xiàn)CSV 字段分割

    這篇文章主要介紹了java實(shí)現(xiàn)CSV 字段分割的相關(guān)資料,需要的朋友可以參考下
    2015-07-07
  • 關(guān)于MyBatis中SqlSessionFactory和SqlSession簡(jiǎn)解

    關(guān)于MyBatis中SqlSessionFactory和SqlSession簡(jiǎn)解

    這篇文章主要介紹了MyBatis中SqlSessionFactory和SqlSession簡(jiǎn)解,具有很好的參考價(jià)值,希望大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 詳解Springboot之接收json字符串的兩種方式

    詳解Springboot之接收json字符串的兩種方式

    這篇文章主要介紹了Springboot之接收json字符串的兩種方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java中基于注解的代碼生成工具M(jìn)apStruct映射使用詳解

    Java中基于注解的代碼生成工具M(jìn)apStruct映射使用詳解

    MapStruct?作為一個(gè)基于注解的代碼生成工具,為我們提供了一種更加優(yōu)雅、高效的解決方案,本文主要為大家介紹了它的具體使用,感興趣的可以了解下
    2025-02-02
  • Java編寫的24點(diǎn)紙牌游戲

    Java編寫的24點(diǎn)紙牌游戲

    這篇文章主要介紹了Java編寫的24點(diǎn)紙牌游戲的相關(guān)資料,需要的朋友可以參考下
    2015-03-03
  • SpringMVC實(shí)現(xiàn)登錄與注冊(cè)功能的詳細(xì)步驟

    SpringMVC實(shí)現(xiàn)登錄與注冊(cè)功能的詳細(xì)步驟

    本文介紹了如何通過Maven配置依賴,創(chuàng)建前端登錄和注冊(cè)頁面,并實(shí)現(xiàn)后端邏輯,詳細(xì)步驟包括配置文件、創(chuàng)建User類、配置中文過濾器及DispatcherServlet,并使用Spring?MVC和JQuery處理前端請(qǐng)求,需要的朋友可以參考下
    2024-11-11
  • SpringCloud微服務(wù)架構(gòu)實(shí)戰(zhàn)之微服務(wù)治理功能的實(shí)現(xiàn)

    SpringCloud微服務(wù)架構(gòu)實(shí)戰(zhàn)之微服務(wù)治理功能的實(shí)現(xiàn)

    這篇文章主要介紹了SpringCloud微服務(wù)架構(gòu)實(shí)戰(zhàn)之微服務(wù)治理,這些治理工具主要包括服務(wù)的注冊(cè)與發(fā)現(xiàn)、負(fù)載均衡管理、動(dòng)態(tài)路由、服務(wù)降級(jí)和故障轉(zhuǎn)移、鏈路跟蹤、服務(wù)監(jiān)控等,需要的朋友可以參考下
    2022-02-02
  • Java排序算法總結(jié)之歸并排序

    Java排序算法總結(jié)之歸并排序

    這篇文章主要介紹了Java排序算法總結(jié)之歸并排序,較為詳細(xì)的分析了歸并排序的原理與java實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-05-05

最新評(píng)論

八宿县| 渝北区| 兴安盟| 海淀区| 微博| 龙江县| 富宁县| 杂多县| 秀山| 大同县| 盱眙县| 渭源县| 奉化市| 阳东县| 寿宁县| 德江县| 临泉县| 塔城市| 华安县| 海阳市| 香河县| 利川市| 丰镇市| 平江县| 长顺县| 拜泉县| 英山县| 霍林郭勒市| 东乌| 鱼台县| 沿河| 琼中| 射阳县| 崇义县| 将乐县| 青岛市| 龙川县| 吴川市| 渝中区| 资源县| 汕尾市|