Spring Boot 部署到 Docker 容器的步骤
·
将Spring Boot应用部署到Docker容器的步骤如下:
1. 准备Spring Boot应用
- 确保应用已配置Maven/Gradle打包插件
- 执行打包命令生成可执行JAR文件:
mvn clean package # Maven项目 # 或 gradle bootJar # Gradle项目 - 在
target/目录获取生成的JAR文件,如myapp-0.0.1-SNAPSHOT.jar
2. 创建Dockerfile
在项目根目录创建Dockerfile文件:
# 使用官方OpenJDK基础镜像
FROM openjdk:17-jdk-slim
# 设置工作目录
WORKDIR /app
# 复制JAR文件到容器
COPY target/myapp-0.0.1-SNAPSHOT.jar app.jar
# 暴露应用端口(与application.properties中一致)
EXPOSE 8080
# 启动应用
ENTRYPOINT ["java", "-jar", "app.jar"]
3. 构建Docker镜像
docker build -t my-spring-app:1.0 .
-t指定镜像名称和标签- 末尾的
.表示使用当前目录的Dockerfile
4. 运行Docker容器
docker run -d -p 8080:8080 --name spring-container my-spring-app:1.0
-d:后台运行-p 主机端口:容器端口:端口映射--name:指定容器名称
5. 验证部署
# 查看运行中的容器
docker ps
# 查看应用日志
docker logs spring-container
# 测试应用访问
curl http://localhost:8080/api/endpoint
可选优化
-
多阶段构建(减小镜像体积):
FROM maven:3.8.4-openjdk-17 AS build COPY . . RUN mvn package FROM openjdk:17-jdk-slim COPY --from=build /target/*.jar app.jar ENTRYPOINT ["java","-jar","/app.jar"] -
环境变量配置:
ENV SPRING_PROFILES_ACTIVE=prod -
健康检查:
HEALTHCHECK --interval=30s --timeout=3s \ CMD curl -f http://localhost:8080/actuator/health || exit 1
部署流程示意图
graph LR
A[打包Spring Boot应用] --> B[编写Dockerfile]
B --> C[构建Docker镜像]
C --> D[运行Docker容器]
D --> E[验证服务状态]
注意:生产环境建议使用Docker Compose编排服务,并配置持久化存储和网络设置。
更多推荐
所有评论(0)