Maven将springboot工程打包成docker镜像

本文详细介绍了如何在Windows环境下使用Maven将SpringBoot项目打包成Docker镜像,包括添加dockerfile-maven-plugin插件、配置插件、编写Dockerfile以及执行Maven命令等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

**

Maven打包成docker镜像

**

由于工作原因,需要通过maven将springboot项目打包成docker镜像,先前以为只能在linux上完成,最近调研了一下,也可以在window环境下进行打包。

​ 下面以thinkpad E470,windows10操作系统以及eclipse开发集成工具为例,进行说明。

Springboot项目的创建,本文不进行介绍,请自行百度。

1、增加docker插件依赖

首先Springboot工程需要在pom.xml文件增加对docker插件的支持,最新的插件是dockerfile-maven-plugin,原来的插件是docker-maven-plugin,现在不建议使用。

在这里插入图片描述

此处使用最新版本1.4.10。

2、docker插件的配置

在这里插入图片描述

在这里插入图片描述

3、编写Dockerfile

在这里插入图片描述

其中,JAR_FILE 对应的是pom文件buildArgs中的JAR_FILE。

4、Maven命令打包

在springboot项目根目录下,打开命令窗口,执行:mvn clean package dockerfile:build,等待其打包完成:

在这里插入图片描述

通过docker命令查看,镜像是否成功:

在这里插入图片描述

5、注意事项

1、 Dockerfile文件需要在项目的根目录下,与pom.xml并列。

2、 一个新的springboot工程默认端口是8080。

3、 在Maven的settings.xml文件中添加以下内容:

​ com.spotify

否则会报以下错误:

在这里插入图片描述

4、执行命令mvn clean package dockerfile:build,而不是mvn clean package docker:build,其是老版本命令,如果执行此命令会报以下错误:

在这里插入图片描述
5、执行命令:mvn clean package dockerfile:build 仍然报错

在这里插入图片描述

Docker配置中勾选以下选项, Docker的settings:

在这里插入图片描述

6、私服

Dokcer安装完成后,镜像默认是从其官网上下载,速度比较慢,可以百度

找些国内的repository,例如阿里的:https://de13k09g.mirror.aliyuncs.com,

然后再DockerEngine中进行配置,如下:

在这里插入图片描述

点击,Apply & Restart,如果能重启成功,说明配置成功。

6、Window10 下安装docker

在docker官网(https://www.docker.com/)上注册docker用户,进行下载。安装文件下载完成后,是exe可执行文件,双击执行,等待安装完毕。

安装完毕后,可能docker启动不成功,比如:

在这里插入图片描述

那么,就需要开启以下功能。

1、 Hyper-v开启

控制面板—程序—程序和功能,点击启动或关闭Windows功能,将hyper-v勾选上。

在这里插入图片描述

2、 bios开启虚拟化

进入BIOS, 找到configuration,选择virtualization 将其设置成Enable

确认机器虚拟化是否启动成功,可以从任务管理器中查看:性能–CPU

2、 bios开启虚拟化

进入BIOS, 找到configuration,选择virtualization 将其设置成Enable

确认机器虚拟化是否启动成功,可以从任务管理器中查看:性能–CPU

在这里插入图片描述

`docker-maven-plugin` 是 Maven 插件之一,用于将 Java 应用程序,包括基于 Spring Boot 的项目,构建为 Docker 镜像。以下是使用这个插件将应用打包并推送到私有仓库的基本步骤: 1. **添加插件依赖**:首先,在 `pom.xml` 文件的 `<build>` 标签内添加 `docker-maven-plugin` 的依赖配置,例如: ```xml <plugins> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.15</version> <!-- 更新到最新版本 --> </plugin> </plugins> ``` 2. **配置镜像信息**:在 `<project>` 节点下设置 Dockerfile 相关的配置,如镜像名称、标签、基础镜像等。这里假设你有一个名为 `application.jar` 的主程序包文件: ```xml <build> <plugins> <plugin> <configuration> <imageName>${project.artifactId}</imageName> <imageTags> <tag>${project.version}</tag> <tag>latest</tag> <!-- 如果需要常量更新的标签 --> </imageTags> <baseImage>openjdk:8-jdk-alpine</baseImage> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build> ``` 3. **私有仓库配置**:如果你有一个私有Docker注册表(如JFrog Artifactory),你需要配置 MavenDocker 接口,通常通过环境变量 `DOCKER_REGISTRY_URL` 和 `DOCKER_USERNAME`、`DOCKER_PASSWORD` 或者认证密钥: ```xml <profiles> <profile> <id>docker-push</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <dockerPushRepository>your-private-repo:5000</dockerPushRepository> <!-- 替换为你的私有仓库地址 --> </properties> <build> <plugins> <plugin> <executions> <execution> <goals> <goal>push</goal> </goals> <phase>deploy</phase> </execution> </executions> <configuration> <registryUrl>${dockerPushRepository}</registryUrl> <username>your-docker-registry-username</username> <password>your-docker-registry-password</password> <!-- 或者从安全环境下获取密钥 --> </configuration> </plugin> </plugins> </build> </profile> </profiles> ``` 4. **构建和推送镜像**:运行 `mvn clean package docker:build docker:push -Pdocker-push` 来构建并推送镜像
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值