SpringBoot 项目Docker部署三种方式
Spring Boot 项目可以通过 Docker 部署,主要有以下三种方式:
- 手动构建 Docker 镜像
- 使用 Dockerfile 自动构建
- 使用 Docker 多阶段构建
1. 手动构建 Docker 镜像
手动构建镜像通常用于开发或测试环境,不推荐用于生产环境。
# 构建jar
mvn clean package
# 创建镜像
docker build -t my-spring-boot-app .
# 运行容器
docker run -p 8080:8080 my-spring-boot-app
2. 使用 Dockerfile 自动构建
Dockerfile 可以让 Docker 自动下载依赖,打包应用,创建镜像,运行容器。
# 基于官方OpenJDK镜像
FROM openjdk:11-jre-slim
# 将当前目录下的jar包复制到docker容器的/app目录下
COPY target/my-spring-boot-app.jar /app.jar
# 设置工作目录为/app
WORKDIR /app
# 为jar包运行指定入口点
ENTRYPOINT ["java", "-jar", "app.jar"]
然后使用以下命令自动构建和运行容器:
# 自动化构建镜像并运行容器
docker build -t my-spring-boot-app .
docker run -p 8080:8080 my-spring-boot-app
3. 使用 Docker 多阶段构建
多阶段构建可以减少镜像大小,避免将 Maven 或 Gradle 等工具包含在最终镜像中。
# 第一阶段:用于构建
FROM maven:3.6-jdk-11 AS build
COPY src /home/app/src
COPY pom.xml /home/app
RUN mvn -f /home/app/pom.xml clean package
# 第二阶段:用于运行
FROM openjdk:11-jre-slim
COPY --from=build /home/app/target/my-spring-boot-app.jar /app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]
使用多阶段构建的 Dockerfile 可以减少最终镜像的大小,并且不需要在最终镜像中包含 Maven 或 Gradle。
# 自动化构建镜像并运行容器
docker build -t my-spring-boot-app .
docker run -p 8080:8080 my-spring-boot-app
以上三种方式是 Spring Boot 项目在 Docker 中常见的部署方式,开发者可以根据具体需求选择合适的方式进行部署。
评论已关闭