打包Spring Boot应用到Docker镜像 🚢
打包Spring Boot应用到Docker镜像 🚢
自从容器技术火热以来,Docker成了开发者部署和发布应用的利器。而Spring Boot作为简洁高效的Java框架,也备受开发者喜爱。今天我们就来聊聊如何把一个Spring Boot项目打包成Docker镜像,然后部署到容器中运行。
环境准备 🍃
开始之前,我们先准备一下必备的环境。我们以一个maven项目为例:
- Docker
- JDK和maven
- 一个Springboot项目
项目配置 ⚙️
这里我使用Spring Boot的maven插件来打包构建项目。首先要确保我们的pom.xml文件中包含以下节点:
构建JAR包的命令如下:
这条命令会让Maven打包项目,并跳过测试阶段,加快构建速度。
构建完成后,你会在target文件夹中看到:
my-springboot-app-1.0.0.jar
:这是生成的 JAR 包,可以用于部署。classes/
:包含编译后的类文件。generated-sources/
maven-archiver/
original-my-springboot-app-1.0.0.jar
这些都是Maven构建过程中的输出,我们要关注的是my-springboot-app-1.0.0.jar
,它包含了应用代码和所有依赖。
构建镜像 🏗️
JAR包构建好后,我们就可以开始构建镜像了。
编写 Dockerfile
我们需要为Spring Boot应用编写一个Dockerfile。
我们使用了eclipse-temurin:17-jre作为基础镜像,并进行了以下操作:
- 设置工作目录为 application。
- 使用 ARG 指令定义一个可变的 JAR 文件路径。
- 将 target 目录下的 JAR 文件复制到镜像中,并命名为 application.jar。
- 暴露容器的 8080 端口。
- 使用 ENTRYPOINT 指令定义容器启动时执行的命令。
构建 Docker 镜像
有了 Dockerfile 后,我们可以使用以下命令来构建 Docker 镜像:
这个命令会读取当前目录下的Dockerfile,并构建一个名为my-app、版本为1.0.0的Docker镜像。
运行容器 🏃
构建好镜像后,我们可以运行容器来测试应用了:
这个命令会启动一个基于my-app:1.0.0镜像的容器,并把主机的8080端口映射到容器的8080端口。这样我们就可以在浏览器中访问http://localhost:8080 来查看应用是否正常运行了。
打包Spring Boot应用到Docker镜像 🚢
https://coding.gs/2024/05/18/springboot-image/