当前位置:首页 > 科技  > 软件

用Docker-Maven-Plugin构建SpringBoot镜像,带劲!

来源: 责编: 时间:2024-05-07 09:13:36 281观看
导读Docker 一次构建、处处运行及快速启停的特性,在微服务架构中有着举足轻重的地位,具体的概念性的东西就不介绍了础教程。本篇主要介绍下如何通过 IntelliJ IDEA、Maven 来操作 Docker 部署 Spring Boot 项目,这也是我们 J

Docker 一次构建、处处运行及快速启停的特性,在微服务架构中有着举足轻重的地位,具体的概念性的东西就不介绍了础教程。p2W28资讯网——每日最新资讯28at.com

本篇主要介绍下如何通过 IntelliJ IDEA、Maven 来操作 Docker 部署 Spring Boot 项目,这也是我们 Java 程序员最关心的开发实战。p2W28资讯网——每日最新资讯28at.com

一、Maven 插件配置

首先在 Maven pom.xml 配置文件中加入 Docker 的 Maven 插件。p2W28资讯网——每日最新资讯28at.com

在配置文件pom.xml的build模块中添加docker-maven-plugin 插件配置:p2W28资讯网——每日最新资讯28at.com

<build>        <!--打包名称-->        <finalName>springboot-hertzbeat</finalName>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>            </plugin>            <plugin>                <groupId>com.spotify</groupId>                <artifactId>dockerfile-maven-plugin</artifactId>                <version>1.4.13</version>                <!--下面这段代表执行package就build项目中的Dockerfile-->                <executions>                    <execution>                        <id>default</id>                        <phase>package</phase>                        <goals>                            <goal>build</goal>                        </goals>                    </execution>                </executions>                <!--下面这段代表产出的内容-->                <configuration>                    <repository>itlaoqi/${project.artifactId}</repository>                    <tag>${project.version}</tag>                    <buildArgs>                        <JAR_FILE>${project.build.finalName}.jar</JAR_FILE>                    </buildArgs>                </configuration>            </plugin>        </plugins>    </build>

此插件的环境要求:p2W28资讯网——每日最新资讯28at.com

  • JDK 7+
  • Apache Maven 3.5.2+
  • 我的jdk版本是1.8,maven版本是3.8.6

图片图片p2W28资讯网——每日最新资讯28at.com

二、Docker 配置

Dockerfile 是创建 Docker 镜像的基本配置文件,本身是一个文本文件。p2W28资讯网——每日最新资讯28at.com

插件默认加载位置为项目所在根目录,因为我在上面的 Maven 插件配置中指明了路径。所以,在 项目的根 目录下添加一个 Dockerfile 文件:p2W28资讯网——每日最新资讯28at.com

图片图片p2W28资讯网——每日最新资讯28at.com

其中,AGR JAR_FILE对应了pom.xml文件中的${project.build.finalName}.jar,也就是生成的jar包名字。p2W28资讯网——每日最新资讯28at.com

# 基础镜像FROM  openjdk:8-jre# 指定路径ARG JAR_FILE# 复制jar文件到路径COPY /target/${JAR_FILE} /app.jar# 启动认证服务ENTRYPOINT ["java","-jar","-Duser.timeznotallow=GMT+08","app.jar"]EXPOSE 9682

三、添加测试接口

图片图片p2W28资讯网——每日最新资讯28at.com

四、构建 Docker 镜像

配置了 Maven 插件和 Dockerfile 文件后就可以开始构建 Docker 镜像了。p2W28资讯网——每日最新资讯28at.com

上面也说了,Docker 构建过程已经集成到了 Maven 的构建过程之中,那么可以直接使用 mvn package 就可以同时打包和构建 Docker 镜像了。p2W28资讯网——每日最新资讯28at.com

因为我电脑不想安装docker,于是将代码上传到了gitlab,然后在服务器上通过git clone拉取了代码。p2W28资讯网——每日最新资讯28at.com

图片图片p2W28资讯网——每日最新资讯28at.com

此时执行命令:mvn package -DskipTests,等待片刻使用docker images命令查看就会发现已经构建好了一个新的镜像itlaoqi/springboot-hertzbeat。p2W28资讯网——每日最新资讯28at.com

五、IDEA 怎么操作 Docker

一旦我们创建了 Dockerfile 文件,IDEA 就会自动识别并提示我们创建 Docker 连接,当然,我们也可以调出 Services 面板进行手动创建。p2W28资讯网——每日最新资讯28at.com

打开 IDEA 中的 Services 面板:p2W28资讯网——每日最新资讯28at.com

图片图片p2W28资讯网——每日最新资讯28at.com

创建完后会自动连接上,点击展开会显示 Docker 远程(本地)所有镜像和容器:p2W28资讯网——每日最新资讯28at.com

图片图片p2W28资讯网——每日最新资讯28at.com

如上图所示,就是我们刚构建的镜像。p2W28资讯网——每日最新资讯28at.com

六、创建并运行容器

右击上面的镜像,选择 "Create Container" 菜单来创建并运行一个容器。p2W28资讯网——每日最新资讯28at.com

图片图片p2W28资讯网——每日最新资讯28at.com

注意:绑定端口这里不要写主机,如果启动不起来,具体错误可以查看预览命令p2W28资讯网——每日最新资讯28at.com

图片图片p2W28资讯网——每日最新资讯28at.com

项目在 Docker 中运行起来了,p2W28资讯网——每日最新资讯28at.com

图片图片p2W28资讯网——每日最新资讯28at.com

然后再访问下上面写的测试接口:p2W28资讯网——每日最新资讯28at.com

http://xxxxx:9682/hellop2W28资讯网——每日最新资讯28at.com

图片图片p2W28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-87019-0.html用Docker-Maven-Plugin构建SpringBoot镜像,带劲!

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 自动化测试在 Kubernetes Operator 开发中的应用:以 OpenTelemetry

下一篇: C# 中获取客户端 IP 地址的技术探讨

标签:
  • 热门焦点
  • Redmi Buds 4开箱简评:才199还有降噪 可以无脑入

    在上个月举办的Redmi Note11T Pro系列新机发布会上,除了两款手机新品之外,Redmi还带来了两款TWS真无线蓝牙耳机产品,Redmi Buds 4和Redmi Buds 4 Pro,此前我们在Redmi Note11T
  • 5月iOS设备性能榜:M1 M2依旧是榜单前五

    和上个月一样,没有新品发布的iOS设备性能榜的上榜设备并没有什么更替,仅仅只有跑分变化而产生的排名变动,刚刚开始的苹果WWDC2023,推出的产品也依旧是新款Mac Pro、新款Mac Stu
  • 消息称迪士尼要拍真人版《魔发奇缘》:女主可能也找黑人演员

    8月5日消息,迪士尼确实有点忙,忙着将不少动画改成真人版,继《美人鱼》后,真人版《白雪公主》、《魔发奇缘》也在路上了。据外媒消息称,迪士尼将打造真人版
  • 线程通讯的三种方法!通俗易懂

    线程通信是指多个线程之间通过某种机制进行协调和交互,例如,线程等待和通知机制就是线程通讯的主要手段之一。 在 Java 中,线程等待和通知的实现手段有以下几种方式:Object 类下
  • .NET 程序的 GDI 句柄泄露的再反思

    一、背景1. 讲故事上个月我写过一篇 如何洞察 C# 程序的 GDI 句柄泄露 文章,当时用的是 GDIView + WinDbg 把问题搞定,前者用来定位泄露资源,后者用来定位泄露代码,后面有朋友反
  • Temu起诉SHEIN,跨境电商战事升级

    来源 | 伯虎财经(bohuFN)作者 | 陈平安日前据外媒报道,拼多多旗下跨境电商平台Temu正对竞争对手SHEIN提起新诉讼,诉状称Shein&ldquo;利用市场支配力量强迫服装厂商与之签订独家
  • 8月见!小米MIX Fold 3获得3C认证:支持67W快充

    这段时间以来,包括三星、一加、荣耀等等有不少品牌旗下的最新折叠屏旗舰都得到了不少爆料,而小米新一代折叠屏旗舰——小米MIX Fold 3此前也屡屡被传
  • 7月4日见!iQOO 11S官宣:“鸡血版”骁龙8 Gen2+200W快充加持

    上半年已接近尾声,截至目前各大品牌旗下的顶级旗舰都已悉数亮相,而下半年即将推出的顶级旗舰已经成为了数码圈爆料的主流,其中就包括全新的iQOO 11S系
  • 2022爆款:ROG魔霸6 冰川散热系统持续护航

    喜逢开学季,各大商家开始推出自己的新产品,进行打折促销活动。对于忠实的端游爱好者来说,能够拥有一款梦寐以求的笔记本电脑是一件十分开心的事。但是现在的
Top