将SpringBoot 项目打包成Jar包并部署docker里面
时间: 2025-05-03 10:39:58 浏览: 27
### Spring Boot 打包 JAR 文件并部署到 Docker 容器
#### 准备工作
为了实现将 Spring Boot 项目打包成 JAR 文件并通过 Docker 进行容器化部署,需要完成以下几个核心步骤:
---
#### 构建 Spring Boot 应用程序的 JAR 文件
通过 Maven 或 Gradle 工具可以轻松构建 Spring Boot 的可执行 JAR 文件。
对于基于 Maven 的项目,在项目的根目录下运行以下命令来生成 JAR 文件:
```bash
mvn clean package
```
这会清理旧的目标文件夹并将最新的应用程序编译为一个单独的 JAR 文件[^2]。默认情况下,JAR 文件会被放置在 `target` 目录中。
如果使用的是 Gradle,则可以通过以下命令生成 JAR 文件:
```bash
gradle bootJar
```
---
#### 创建 Dockerfile 文件
创建一个名为 `Dockerfile` 的文件用于定义 Docker 镜像的构建过程。以下是典型的 Dockerfile 内容示例:
```dockerfile
# 使用官方的基础 Java 镜像作为父镜像
FROM openjdk:17-jdk-slim
# 将当前目录下的目标 JAR 文件复制到容器中的 /app/ 路径下
COPY target/*.jar /app/app.jar
# 设置容器的工作目录
WORKDIR /app
# 暴露应用所需的端口(假设 Spring Boot 默认监听8080)
EXPOSE 8080
# 启动容器时自动运行的应用启动命令
ENTRYPOINT ["java", "-jar", "/app/app.jar"]
```
上述配置指定了基础镜像、JAR 文件的位置以及服务暴露的端口号,并设置了容器启动后的入口点[^4]。
---
#### 构建 Docker 镜像
确保已经安装好 Docker 和 Docker Compose 后,可以在终端中导航到包含 `Dockerfile` 和生成好的 JAR 文件的目录,然后运行以下命令以构建自定义镜像:
```bash
docker build -t springboot-app .
```
此命令会在当前目录查找 `Dockerfile` 并按照其中的指令逐步构建一个新的 Docker 镜像,最终命名为 `springboot-app`[^3]。
---
#### 运行 Docker 容器
一旦成功构建了镜像,就可以利用该镜像启动新的容器实例。例如,下面这条命令将会以前台模式启动容器,并绑定主机上的某个端口与容器内部的服务端口相对应:
```bash
docker run -d -p 9090:8080 --name my-springboot-container springboot-app
```
这里的 `-d` 参数表示以后台方式运行;`-p` 则用来设置宿主机和容器之间的网络端口映射关系;而 `--name` 是给新创建出来的容器赋予唯一的名字以便后续管理操作更加方便快捷。
另外还可以加上数据持久化的选项比如这样:
```bash
docker run -d \
-p 9090:8080 \
-v $(pwd)/logs:/app/logs \
--name my-springboot-container \
springboot-app
```
这段脚本不仅实现了基本功能还增加了日志记录位置共享的功能使得调试更简单高效。
---
#### 自动化流程 (Optional)
为了进一步简化开发运维一体化(CI/CD),可以借助 Jenkins 来自动化整个流水线作业——从源码检出、测试验证直到最后一步制作镜像推送远程仓库都可通过插件支持无缝衔接起来。
---
阅读全文
相关推荐


















