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

开发 前端
本篇主要介绍下如何通过 IntelliJ IDEA、Maven 来操作 Docker 部署 Spring Boot 项目,这也是我们 Java 程序员最关心的开发实战。

Docker 一次构建、处处运行及快速启停的特性,在微服务架构中有着举足轻重的地位,具体的概念性的东西就不介绍了础教程。

本篇主要介绍下如何通过 IntelliJ IDEA、Maven 来操作 Docker 部署 Spring Boot 项目,这也是我们 Java 程序员最关心的开发实战。

一、Maven 插件配置

首先在 Maven pom.xml 配置文件中加入 Docker 的 Maven 插件。

在配置文件pom.xml的build模块中添加docker-maven-plugin 插件配置:

<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>

此插件的环境要求:

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

图片图片

二、Docker 配置

Dockerfile 是创建 Docker 镜像的基本配置文件,本身是一个文本文件。

插件默认加载位置为项目所在根目录,因为我在上面的 Maven 插件配置中指明了路径。所以,在 项目的根 目录下添加一个 Dockerfile 文件:

图片图片

其中,AGR JAR_FILE对应了pom.xml文件中的${project.build.finalName}.jar,也就是生成的jar包名字。

# 基础镜像
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

三、添加测试接口

图片图片

四、构建 Docker 镜像

配置了 Maven 插件和 Dockerfile 文件后就可以开始构建 Docker 镜像了。

上面也说了,Docker 构建过程已经集成到了 Maven 的构建过程之中,那么可以直接使用 mvn package 就可以同时打包和构建 Docker 镜像了。

因为我电脑不想安装docker,于是将代码上传到了gitlab,然后在服务器上通过git clone拉取了代码。

图片图片

此时执行命令:mvn package -DskipTests,等待片刻使用docker images命令查看就会发现已经构建好了一个新的镜像itlaoqi/springboot-hertzbeat。

五、IDEA 怎么操作 Docker

一旦我们创建了 Dockerfile 文件,IDEA 就会自动识别并提示我们创建 Docker 连接,当然,我们也可以调出 Services 面板进行手动创建。

打开 IDEA 中的 Services 面板:

图片图片

创建完后会自动连接上,点击展开会显示 Docker 远程(本地)所有镜像和容器:

图片图片

如上图所示,就是我们刚构建的镜像。

六、创建并运行容器

右击上面的镜像,选择 "Create Container" 菜单来创建并运行一个容器。

图片图片

注意:绑定端口这里不要写主机,如果启动不起来,具体错误可以查看预览命令

图片图片

项目在 Docker 中运行起来了,

图片图片

然后再访问下上面写的测试接口:

http://xxxxx:9682/hello

图片图片

责任编辑:武晓燕 来源: 程序员恰恰
相关推荐

2020-12-31 05:57:36

DockerSpringBootMaven

2016-07-01 14:43:32

DockerServerless

2014-11-18 10:37:15

dockerlinux技巧

2017-03-24 09:24:21

HarborDocker镜像仓库

2024-02-20 08:08:43

2022-09-06 10:39:38

Docker镜像构建

2017-11-13 17:17:11

Docker镜像Go

2020-11-12 07:51:05

DockerSpring Boot应用

2023-09-10 07:20:35

2023-12-04 16:18:30

2021-08-23 08:30:30

Docker BuildKit 架构

2021-06-17 09:50:45

Docker Buil系统架构Linux

2023-07-03 08:52:31

容器Golang

2022-07-15 14:54:00

DockerLinux技巧

2021-12-07 06:02:15

Redis Docker运维

2021-02-23 15:05:55

Docker镜像开发

2016-01-28 10:07:07

DockerDocker镜像

2019-10-21 11:43:00

DockerGradleJava

2019-11-27 18:33:32

Docker架构数据

2020-03-19 10:44:19

DockerSpring Boo单层镜像
点赞
收藏

51CTO技术栈公众号