使用Maven和远程Docker基于Dockerfile构建SpringBoot应用镜像

 更新时间:2024年06月17日 10:22:43   作者:初衷不改~  
本文重点给大家介绍使用Maven和远程Docker基于Dockerfile构建SpringBoot应用镜像的相关操作,感兴趣的朋友跟随小编一起看看吧

简介

由于本人开发环境是 Windows,但是生产环境是 Linux,应用开发完后需要打包并构建 Docker 镜像,但是我不想在本地安装 Docker,于是便使用远程的 Docker 进行处理,以下是具体的步骤。

步骤

开启远端 Docker 的访问接口

本文以 Linux 环境下的配置为例,执行以下命令编辑配置文件:

vim /usr/lib/systemd/system/docker.service

在 ExecStart 后面添加一行(表示启动2375端口用于监听远程操作)

-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

执行以下命令重启 Docker 服务

systemctl daemon-reload && systemctl restart docker

系统中添加环境变量

系统中添加以下环境变量:

名称:DOCKER_HOST
值:tcp://你 docker 所在的IP地址:上一步中配置的端口

如果这时候你的 IDEA 还是打开的,那么你需要关掉重启 IDEA,否则环境变量的配置可能不会生效,或者你也可以直接使用命令的方式打包

配置插件

配置 SpringBoot 打包插件和 Docker 插件,由于我的项目中在父级的 pom 文件中已经配置了插件版本管理,所以这里使用的插件是不需要 version 的,具体可以查询 pluginManagement 这个关键字查看相关博文,这里不再赘述。

<build>
    <!--应用程序打包后生成的 jar 名称-->
    <finalName>your-app-name</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <!--需要加这个,不然打包镜像找不到启动文件-->
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <addResources>true</addResources>
            </configuration>
        </plugin>
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>dockerfile-maven-plugin</artifactId>
            <configuration>
                <repository>cloud/${project.artifactId}</repository>
                <buildArgs>
                	<!--应用打包后jar所在的地方,默认是在target里面-->
                    <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
                </buildArgs>
            </configuration>
            </plugin>
    </plugins>
</build>

编写 Dockerfile 文件

在你需要构建镜像的应用的 pom 文件相同的目录下,创建一个名为 Dockerfile 的文件,其内容如下:

FROM eclipse-temurin:17
COPY target/your-app-name.jar your-app-name.jar
ENTRYPOINT ["java","-jar","/your-app-name.jar"]

第一行表示基于 JDK 17 镜像;
第二行的 COPY,表示复制你打包好的 jar 包到镜像中,这里的配置要和上一步骤中 pom 文件的配置吻合;
第三行表示容器启动后运行的命令,这里简单使用 java -jar 运行应用即可。

构建

首先打包你的程序,由于本人比较懒,就不使用命令的方式打包和构建了,以 IDEA 为例,找到你要打包的模块,点击 package,这样就会在 target 文件夹中生成一个jar包,如下图所示,:

maven打包

接着找到下面的插件,找到dockerfile,build,这样会调用远程的 Docker 进行构建,镜像也会保存到远程的 Docker 中,如下图所示:

构建docker镜像

看到控制台中出现下面这样的 BUILD SUCCESS 就算是成功了:

在这里插入图片描述

接着我们去远程的 Docker 查询镜像,可以看到镜像已经被构建好了:

在这里插入图片描述

到此这篇关于使用Maven和远程Docker基于Dockerfile构建SpringBoot应用镜像的文章就介绍到这了,更多相关SpringBoot应用镜像内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker灵活的构建PHP环境的实现

    docker灵活的构建PHP环境的实现

    这篇文章主要介绍了docker灵活的构建PHP环境的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • docker容器如何优雅的终止详解

    docker容器如何优雅的终止详解

    最近公司在试验如何将项目部署到docker容器中去,这其中涉及到一个技术环节,那就是如何让docker容器优雅的终止。所谓优雅终止,指的就是程序在退出前有清理资源,保存必要中间状态,持久化内存数据的机会。下面通过这篇大家一起由简单到复杂逐一考量一下。
    2016-11-11
  • docker容器中登陆并操作postgresql的实现

    docker容器中登陆并操作postgresql的实现

    本文主要介绍了docker容器中登陆并操作postgresql的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-02-02
  • 滚动 docker 中的 nginx 日志思路详解

    滚动 docker 中的 nginx 日志思路详解

    Nginx 自己没有处理日志的滚动问题,本文笔者介绍如何滚动运行在 docker 中的 nginx 日志文件,感兴趣的朋友一起看看吧
    2018-08-08
  • 教你使用Docker搭建gitlab社区汉化版的详细过程

    教你使用Docker搭建gitlab社区汉化版的详细过程

    很多朋友不太清楚使用Docker搭建gitlab社区汉化版的过程,总是容易出现错误,今天小编抽空给大家分享使用Docker搭建gitlab社区汉化版的详细过程,一起看看吧
    2021-09-09
  • Docker的彻底删除与重新安装完整步骤(ubuntu22.04)

    Docker的彻底删除与重新安装完整步骤(ubuntu22.04)

    Docker是一种轻量级的容器化平台,可以帮助开发人员将应用程序及其依赖项打包成一个可移植的容器,这篇文章主要介绍了Docker的彻底删除与重新安装完整步骤的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2025-03-03
  • 如何查看docker run启动参数命令(推荐)

    如何查看docker run启动参数命令(推荐)

    这篇文章主要介绍了如何查看docker run启动参数命令,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • docker安装ros2详细步骤介绍

    docker安装ros2详细步骤介绍

    大家好,本篇文章主要讲的是docker安装ros2详细步骤介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Docker Compose 配置指南小结

    Docker Compose 配置指南小结

    Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具,本文主要介绍了Docker Compose 配置指南小结,具有一定的参考价值,感兴趣的可以了解一下
    2025-04-04
  • Docker方式安装gitlab--ARM64平台安装详解

    Docker方式安装gitlab--ARM64平台安装详解

    这篇文章主要介绍了Docker方式安装gitlab--ARM64平台安装,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05

最新评论