Spring Boot应用部署 - JAR包Docker部署

JAR包Docker部署

要使用Docker部署Spring Boot应用,需要创建一个Dockerfile来定义如何构建Docker镜像,并且可能还需要在Maven构建脚本中集成Docker插件以简化构建过程。以下是详细的步骤:

1. 创建Dockerfile

在Spring Boot项目的根目录下创建一个名为Dockerfile的文件,内容如下:

Dockerfile 复制代码
# 使用官方的Java基础镜像作为基础环境
FROM adoptopenjdk:11-jre-hotspot

# 设置环境变量(可根据实际需求调整)
ENV SPRING_PROFILES_ACTIVE=prod
ENV SERVER_PORT=8080

# 设置工作目录
WORKDIR /app

# 复制应用所需的文件到容器中
COPY target/my-spring-boot-app.jar app.jar

# 声明应用运行时需要暴露的端口
EXPOSE 8080

# 定义容器启动时执行的命令
ENTRYPOINT ["java", "-jar", "app.jar"]

这里的my-spring-boot-app.jar是构建得到的WAR文件名,请将其替换为实际的WAR文件名。使用的Java基础镜像是AdoptOpenJDK 11(可替换为所需的Java版本),并且假设应用监听在端口8080。

2. 构建WAR文件

确保已经按照之前的指导将项目配置为WAR打包,并通过Maven构建工具生成WAR文件:

Maven
bash 复制代码
mvn clean package

3. 构建Docker镜像

在项目根目录下(含有Dockerfile)执行以下命令构建Docker镜像:

bash 复制代码
docker build -t my-spring-boot-app:latest .

这里my-spring-boot-app是自定义的镜像名,:latest是标签。构建完成后,将拥有一个名为my-spring-boot-app:latest的Docker镜像。

4. 运行Docker容器

使用以下命令启动Docker容器:

bash 复制代码
docker run -d --name my-running-app -p 8080:8080 my-spring-boot-app:latest

参数解释:

  • -d:在后台运行容器。
  • --name my-running-app:为容器指定一个名称。
  • -p 8080:8080:将主机的8080端口映射到容器的8080端口,使得外部可以通过主机IP和端口访问应用。
  • my-spring-boot-app:latest:使用的镜像名及标签。

5. 访问应用

容器启动后,可以通过以下URL访问Spring Boot应用:

http 复制代码
http://localhost:8080

注意事项

  • Dockerfile位置 :确保Dockerfile位于项目的根目录,与pom.xml在同一层级。
  • WAR文件路径 :在Dockerfile中,COPY命令的源路径应与实际WAR文件生成的位置相对应。
  • 依赖管理:确保Docker镜像中包含所有运行应用所需的依赖,包括但不限于Java运行时环境、应用自身依赖的库等。
  • 日志管理:考虑如何收集和管理容器内的应用日志,可能需要配置日志驱动或使用专门的日志管理服务。
  • 健康检查与监控:如同常规部署,可以利用Spring Boot Actuator提供的端点来监控Docker容器中运行的应用。

按照以上步骤,就能使用Docker部署Spring Boot WAR应用了。如果有任何问题或需要进一步的帮助,请随时评论提问。

相关推荐
计算机-秋大田6 分钟前
基于微信小程序的汽车保养系统设计与实现(LW+源码+讲解)
spring boot·后端·微信小程序·小程序·课程设计
milk_yan2 小时前
MinIO的安装与使用
linux·数据仓库·spring boot
程序员徐师兄3 小时前
Java 基于 SpringBoot 的校园外卖点餐平台微信小程序(附源码,部署,文档)
java·spring boot·微信小程序·校园外卖点餐·外卖点餐小程序·校园外卖点餐小程序
chengpei1473 小时前
chrome游览器JSON Formatter插件无效问题排查,FastJsonHttpMessageConverter导致Content-Type返回不正确
java·前端·chrome·spring boot·json
Q_27437851094 小时前
springboot基于微信小程序的周边游小程序
spring boot·微信小程序·小程序
计算机学姐4 小时前
基于微信小程序的民宿预订管理系统
java·vue.js·spring boot·后端·mysql·微信小程序·小程序
奈葵5 小时前
Spring Boot/MVC
java·数据库·spring boot
落霞的思绪5 小时前
Redis实战(黑马点评)——涉及session、redis存储验证码,双拦截器处理请求
spring boot·redis·缓存
liuyunshengsir6 小时前
Spring Boot 使用 Micrometer 集成 Prometheus 监控 Java 应用性能
java·spring boot·prometheus
何中应6 小时前
Spring Boot中选择性加载Bean的几种方式
java·spring boot·后端