SpringBoot自动化部署实战指南
SpringBoot自动化部署实战指南
一、环境准备
- 服务器环境配置
# 安装JDK
sudo apt install openjdk-17-jdk# 验证安装
java -version
- 项目基础配置
<!-- pom.xml 打包配置 -->
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>
二、CI/CD流水线搭建
- GitLab CI示例 (.gitlab-ci.yml)
stages:- build- deploybuild-job:stage: buildimage: maven:3.8.6-jdk-11script:- mvn clean package -DskipTestsdeploy-job:stage: deployimage: alpine:3.16script:- apk add openssh-client- scp -o StrictHostKeyChecking=no target/*.jar user@server:/opt/app- ssh user@server "systemctl restart myapp.service"
三、Docker化部署方案
- Dockerfile示例
FROM eclipse-temurin:17-jdk-alpine
VOLUME /tmp
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
- Docker Compose配置
version: '3.8'
services:app:build: .ports:- "8080:8080"environment:- SPRING_PROFILES_ACTIVE=prod
四、自动化部署脚本
- 部署脚本 (deploy.sh)
#!/bin/bash
SERVER="user@production"
APP_DIR="/opt/springboot-app"
JAR_NAME="app-0.0.1-SNAPSHOT.jar"echo "▶ 开始构建项目..."
mvn clean package -DskipTestsecho "▶ 传输部署文件..."
scp target/$JAR_NAME $SERVER:$APP_DIRecho "▶ 重启应用服务..."
ssh $SERVER "cd $APP_DIR && \docker-compose down && \docker-compose up -d"echo "✓ 部署完成"
五、部署验证
# 查看应用日志
ssh user@server "docker logs -f springboot-app"# 健康检查
curl http://server:8080/actuator/health
六、进阶优化方案
-
配置管理建议:
- 使用Spring Cloud Config进行配置中心化管理
- 敏感信息使用Vault或Kubernetes Secrets管理
-
部署策略优化:
# Kubernetes滚动更新策略示例 strategy:type: RollingUpdaterollingUpdate:maxSurge: 25%maxUnavailable: 25%
-
监控集成:
- Prometheus + Grafana监控体系
- ELK日志收集系统
提示:生产环境建议采用蓝绿部署或金丝雀发布策略,使用Nginx或Kubernetes流量管理功能实现平滑过渡。