解锁高效部署SpringBoot 与 Docker 的完美结合,生产环境实战全解析

最近博主真的太忙了,之前写了许多文章都没来得及更新,难得今晚能够跟大家见面,无论怎么讲,坚持更新,你们的一键三连是我最大的动力!废话不多说,请往下看:

Spring Boot 工程 Docker 化部署指南

总结下来,步骤大致是:

1. 准备项目结构和配置文件;

2. 编写Dockerfile;

3. 构建镜像;

4. 运行容器并挂载配置;

5. 验证部署


一、项目目录结构:(示例说明 my-springboot-app)

/my-springboot-app
├── src/                  # 源代码目录
├── pom.xml               # Maven 构建文件
├── Dockerfile            # Docker 构建文件
└── config/               # 外部配置文件目录(与 Jar 包同级)
    ├── application.yml   # 主配置文件
    ├── application-prod.yml # 生产环境配置
    └── application-dev.yml  # 开发环境配置

二、编写Dockerfile

# 第一阶段:构建 Jar 包
FROM maven:3.8.6-openjdk-17-slim AS build
WORKDIR /app
COPY pom.xml .
RUN mvn dependency:go-offline
COPY src/ src/
RUN mvn package -DskipTests

# 第二阶段:运行环境
FROM openjdk:17-jdk-slim
WORKDIR /app

# 复制 Jar 文件(替换 your-project-name)
COPY --from=build /app/target/*.jar app.jar

# 创建配置文件目录
RUN mkdir -p /app/config

# 设置时区(可选)
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# 声明挂载目录
VOLUME /app/config

# 健康检查(可选)
HEALTHCHECK --interval=30s --timeout=3s 
  CMD curl -f http://localhost:8080/actuator/health || exit 1

# 启动命令(优先加载外部配置)
ENTRYPOINT ["java", "-jar", "app.jar", 
           "--spring.config.location=classpath:/,file:/app/config/"]

三、构建docker镜像

# 进入项目根目录
cd /my-springboot-app

# 构建镜像(注意末尾的 .)
docker build -t my-springboot-app:1.0.0 .

四、创建服务器配置目录

mkdir -p /opt/apps/my-springboot-app/config

- 将以下文件上传至服务器:
  - `/opt/apps/my-springboot-app/config/application.yml`
  - `/opt/apps/my-springboot-app/config/application-prod.yml`

五、运行容器

docker run -d 
  --name my-springboot-app 
  -p 8080:8080 
  -v /opt/apps/my-springboot-app/config:/app/config 
  -e SPRING_PROFILES_ACTIVE=prod 
  --restart=always 
  my-springboot-app:1.0.0

六、配置验证

# 查看容器日志
docker logs -f my-springboot-app

# 检查健康状态
curl http://localhost:8080/actuator/health

#查看加载配置
curl http://localhost:8080/actuator/env

总结:

本文步骤超级简单,初学者也能完全快速上手,后期我会层层递进,结合docker-compose,或者k8s部署咋们的微服务应用。谢谢大家的观看,喜爱的话请记得一键三连。谢谢观看,再会

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...