亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

SpringBoot+Docker+IDEA 實現一鍵構建+推送、運行、同鏡像多容器啟動(推薦)

瀏覽:77日期:2023-03-15 15:34:09
場景:

由于公司項目需要,需要使用部署微服務項目,而之前都是使用tomcat部署,操作十分繁瑣。最近正好在學習Docker,利用Docker容器做部署嘗試

需求: 使用Docker部署服務 支持idea插件,一鍵操作構建、推送鏡像、運行 單個鏡像需根據不同端口部署多個容器 日志持久化必要軟件

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

Docker(需要開通遠程訪問,正式環境請使用證書加密,我這里測試用無加密) Harbor 鏡像倉庫(可選)

開發端

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

在idea中配置docker

SpringBoot+Docker+IDEA 實現一鍵構建+推送、運行、同鏡像多容器啟動(推薦)

目錄結構:

SpringBoot+Docker+IDEA 實現一鍵構建+推送、運行、同鏡像多容器啟動(推薦)

父項目配置(關鍵配置):

pom.xml

<properties> <!-- docker主機ip(這里填寫自己docker所在地址) --> <docker.host>192.168.10.10</docker.host> <!-- harbor倉庫地址(可選,構建鏡像后自動上傳到該倉庫) --> <docker.repostory>${docker.host}</docker.repostory> <!-- docker遠程地址, 如果是https協議則將http換成https即可 --> <docker.remote>http://${docker.host}:2375</docker.remote> <!--項目名,需要和Harbor中的項目名稱保持一致 --> <docker.registry.name>library</docker.registry.name> <!-- 默認端口 --> <port>8080</port></properties>... <build> <pluginManagement><plugins> <!--構建鏡像--> <plugin><groupId>com.spotify</groupId><artifactId>docker-maven-plugin</artifactId><version>1.2.0</version><configuration> <!--Maven 的配置文件 setting.xml 中增加相關 server 配置,主要配置 Docker registry用戶認--> <serverId>docker-harbor</serverId> <dockerHost>${docker.remote}</dockerHost> <!-- 鏡像名格式: 倉庫地址/倉庫項目名/當前項目名 (按需修改) --> <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和后面的操作是保證時間同步 --> <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> <!-- 這里指定是否構建成功后自動推送到倉庫,不需要可以刪除 --> <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><!-- 路徑為: 當前項目的上一級(也就是父項目),所以不支持二級以上的子項目 --> <composeFile>${project.basedir}/../docker-compose.yml</composeFile> <apiVersion>1.22</apiVersion> <host>${docker.remote}</host> <envVars><!-- 默認端口 --><port>${port}</port><host>${docker.repostory}</host><name>${project.build.finalName}</name><!-- 自定義項目名,支持單鏡像啟動多容器的關鍵 --><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}引用的項目構件ID只能是小寫

docker-compose.yml

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

配置了倉庫的話需要配置Maven的settings.xml的賬號密碼

<servers> <server><id>docker-harbor</id><username>倉庫用戶名</username><password>倉庫密碼</password> </server></servers>子項目配置(關鍵配置)

pom.xml

<!-- 這里配置的端口會傳入父項目,最終傳入docker-compose.yml和Dockerfile文件 --><!-- 如果需要單個鏡像啟動多個容器,改這里的端口再啟動就可以了 --><properties><port>8082</port></properties>... <build> <plugins> <!-- docker插件 --><plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId></plugin><!-- docker-compose的maven插件,由于docker插件不支持運行,所以單獨安裝了 --><plugin> <groupId>com.dkanejs.maven.plugins</groupId> <artifactId>docker-compose-maven-plugin</artifactId></plugin> </plugins></build>

如果一切順利maven中會出現docker和docker-compse插件先執行docker:build構建,再執行docker-compose:up啟動

SpringBoot+Docker+IDEA 實現一鍵構建+推送、運行、同鏡像多容器啟動(推薦)

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

SpringBoot+Docker+IDEA 實現一鍵構建+推送、運行、同鏡像多容器啟動(推薦)

好了,這功能花費了我很長時間,最終實現了這些功能。可能還有些小細節沒展示出來,可以盡管提問

到此這篇關于SpringBoot+Docker+IDEA 實現一鍵構建+推送、運行、同鏡像多容器啟動的文章就介紹到這了,更多相關springboot docker idea多容器啟動內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
主站蜘蛛池模板: 大片在线免费观看 | 婷婷丁香五月中文字幕 | 91在线视频免费播放 | 中国护士一级毛片免费版本 | 国产美女福利视频 | 尤物精品在线观看 | 999国产精品999久久久久久 | 亚洲精品乱码电影在线观看 | 成人免费午夜视频 | 久久精品国产99国产精2020丨 | 国产日产欧产麻豆精品精品推荐 | 国产丝袜诱惑 | 色综合亚洲七七久久桃花影院 | 成年片人免费www | 怡红院免费va男人的天堂 | 一级毛片aaaaaa视频免费看 | 欧美精品在线观看视频 | 伊甸园久久网站 | 伊人色院成人蜜桃视频 | 欧美性猛交 | 国产一级在线现免费观看 | 亚洲天堂色图 | 久久国产精品老女人 | 亚洲三极 | 中文字幕欧美日韩高清 | 久久色图 | 国产欧美一区二区三区在线看 | 国产大片91精品免费看3 | 黄毛片 | 韩国r级福利视频在线观看网站 | 久久亚洲这里只有精品18 | 女人大毛片一级毛片一 | 亚洲天堂色图 | 2020国产成人精品免费视频 | 黄色大片视频在线观看 | 国产精品第三页在线看 | 国产精品jlzz视频 | 99j久久精品久久久久久 | 亚洲精品国产不卡在线观看 | 国内自拍经典三级在线 | 欧美成人aa久久狼窝动画 |