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应用了。如果有任何问题或需要进一步的帮助,请随时评论提问。

相关推荐
-天凉好秋-27 分钟前
Springboot 同时支持不同的数据库,Oracle,Postgresql
数据库·spring boot·oracle
一切皆有迹可循42 分钟前
IDEA中Spring Boot项目接入MySQL数据库:从配置到CRUD实战
spring boot·mysql·intellij-idea
创码小奇客44 分钟前
Spring Boot 分布式事务高阶玩法:从入门到精通
java·spring boot·trae
〆、风神3 小时前
Spring Boot 自定义 Redis Starter 开发指南(附动态 TTL 实现)
spring boot·redis·后端
Fly_hao.belief3 小时前
Spring Boot 框架注解:@ConfigurationProperties
java·spring boot·后端
代码吐槽菌3 小时前
基于SpringBoot的水产养殖系统【附源码】
java·数据库·spring boot·后端·毕业设计
Pitayafruit5 小时前
🔥 Spring Boot 3 整合 zxing:轻松生成二维码的指南
java·spring boot·后端
kong79069285 小时前
SpringBoot整合SSM
java·spring boot·ssm
爱的叹息6 小时前
Spring Boot 3.x 集成 MongoDB 的 默认配置项及默认值,以及 常用需要修改的配置项 的详细说明
spring boot·后端·mongodb
小吕学编程6 小时前
企业级开发SpringBoost玩转Elasticsearch
大数据·spring boot·elasticsearch·搜索引擎