跳至主要內容

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

bsfc.tech大约 2 分钟框架Spring Boot

JAR包Docker部署

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

1. 创建Dockerfile

在Spring Boot项目的根目录下创建一个名为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或Gradle构建工具生成WAR文件:

Maven

mvn clean package

3. 构建Docker镜像

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

docker build -t my-spring-boot-app:latest .

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

4. 运行Docker容器

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

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://localhost:8080