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
- deploy
build-job:
stage: build
image: maven:3.8.6-jdk-11
script:
- mvn clean package -DskipTests
deploy-job:
stage: deploy
image: alpine:3.16
script:
- 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 -DskipTests
echo "▶ 传输部署文件..."
scp target/$JAR_NAME $SERVER:$APP_DIR
echo "▶ 重启应用服务..."
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: RollingUpdate rollingUpdate: maxSurge: 25% maxUnavailable: 25% -
监控集成:
- Prometheus + Grafana监控体系
- ELK日志收集系统
提示:生产环境建议采用蓝绿部署或金丝雀发布策略,使用Nginx或Kubernetes流量管理功能实现平滑过渡。
原文地址:https://blog.csdn.net/qq123456xxd/article/details/148657676
免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!
