电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

瀏覽:83日期:2023-03-15 16:33:21
場景:

由于公司項目需要,需要使用部署微服務項目,而之前都是使用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
相關文章:
主站蜘蛛池模板: 桁架楼承板-钢筋桁架楼承板-江苏众力达钢筋楼承板厂 | 上海橡胶接头_弹簧减震器_金属软接头厂家-上海淞江集团 | _网名词典_网名大全_qq网名_情侣网名_个性网名 | 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | 蚂蚁分类信息系统 - PHP同城分类信息系统 - MayiCMS | 短信营销平台_短信群发平台_106短信发送平台-河南路尚 | 台式低速离心机-脱泡离心机-菌种摇床-常州市万丰仪器制造有限公司 | 上海璟文空运首页_一级航空货运代理公司_机场快递当日达 | 奇酷教育-Python培训|UI培训|WEB大前端培训|Unity3D培训|HTML5培训|人工智能培训|JAVA开发的教育品牌 | 亚克隆,RNAi干扰检测,miRNA定量检测-上海基屹生物科技有限公司 | 杭州营业执照代办-公司变更价格-许可证办理流程_杭州福道财务管理咨询有限公司 | 骨灰存放架|骨灰盒寄存架|骨灰架厂家|智慧殡葬|公墓陵园管理系统|网上祭奠|告别厅智能化-厦门慈愿科技 | 真空搅拌机-行星搅拌机-双行星动力混合机-广州市番禺区源创化工设备厂 | 塑料脸盆批发,塑料盆生产厂家,临沂塑料广告盆,临沂家用塑料盆-临沂市永顺塑业 | 烟气在线监测系统_烟气在线监测仪_扬尘检测仪_空气质量监测站「山东风途物联网」 | 云南标线|昆明划线|道路标线|交通标线-就选云南云路施工公司-云南云路科技有限公司 | 营养师网,营养师考试时间,报名入口—网站首页 | 木材烘干机,木炭烘干机,纸管/佛香烘干设备-河南蓝天机械制造有限公司 | 好杂志网-首页| 精密线材测试仪-电线电缆检测仪-苏州欣硕电子科技有限公司 | 搪瓷搅拌器,搪玻璃搅拌器,搪玻璃冷凝器_厂家-淄博越宏化工设备 | 塑料脸盆批发,塑料盆生产厂家,临沂塑料广告盆,临沂家用塑料盆-临沂市永顺塑业 | 澳洁干洗店加盟-洗衣店干洗连锁「澳洁干洗免费一对一贴心服务」 干洗加盟网-洗衣店品牌排行-干洗设备价格-干洗连锁加盟指南 | 电动葫芦|环链电动葫芦-北京凌鹰名优起重葫芦 | 消防设施操作员考试报名时间,报名入口,报考条件 | 拉力机-拉力试验机-万能试验机-电子拉力机-拉伸试验机-剥离强度试验机-苏州皖仪实验仪器有限公司 | 温湿度记录纸_圆盘_横河记录纸|霍尼韦尔记录仪-广州汤米斯机电设备有限公司 | 胶泥瓷砖胶,轻质粉刷石膏,嵌缝石膏厂家,腻子粉批发,永康家德兴,永康市家德兴建材厂 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 铁盒_铁罐_马口铁盒_马口铁罐_铁盒生产厂家-广州博新制罐 | 3D全息投影_地面互动投影_360度立体投影_水幕灯光秀 | 广东银虎 蜂窝块状沸石分子筛-吸附脱硫分子筛-萍乡市捷龙环保科技有限公司 | 机械加工_绞车配件_立式离心机_减速机-洛阳三永机械厂 | 动物解剖台-成蚊接触筒-标本工具箱-负压实验台-北京哲成科技有限公司 | 青岛侦探调查_青岛侦探事务所_青岛调查事务所_青岛婚外情取证-青岛狄仁杰国际侦探公司 | 环氧树脂地坪_防静电地坪漆_环氧地坪漆涂料厂家-地壹涂料地坪漆 环球电气之家-中国专业电气电子产品行业服务网站! | 警方提醒:赣州约炮论坛真的安全吗?2025年新手必看的网络交友防坑指南 | 济南网站建设_济南网站制作_济南网站设计_济南网站建设公司_富库网络旗下模易宝_模板建站 | 南京种植牙医院【官方挂号】_南京治疗种植牙医院那个好_南京看种植牙哪里好_南京茀莱堡口腔医院 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | ERP企业管理系统永久免费版_在线ERP系统_OA办公_云版软件官网 | 设定时间记录电子秤-自动累计储存电子秤-昆山巨天仪器设备有限公司 | 浴室柜-浴室镜厂家-YINAISI · 意大利设计师品牌 | 咿耐斯 |-浙江台州市丰源卫浴有限公司 |