当前位置: 首页 > news >正文

【SpringBoot自动化部署】

SpringBoot自动化部署方法

使用Jenkins进行持续集成与部署

Jenkins是最常用的自动化部署工具之一,能够实现代码拉取、构建、测试和部署的全流程自动化。

配置Jenkins任务时,需要添加Git仓库地址和凭证,设置构建触发器(如GitHub Webhook)。在构建步骤中添加Maven或Gradle构建命令。

mvn clean package

在Post-build Actions中配置部署脚本,例如将生成的JAR包通过SSH传输到目标服务器并启动。

scp target/your-app.jar user@server:/path/to/deploy
ssh user@server "java -jar /path/to/deploy/your-app.jar"

使用Docker容器化部署

将SpringBoot应用打包为Docker镜像,可以简化环境配置和部署流程。创建Dockerfile:

FROM openjdk:17-jdk-slim
COPY target/your-app.jar app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]

构建并推送镜像到仓库:

docker build -t your-registry/your-app:latest .
docker push your-registry/your-app:latest

在目标服务器上运行容器:

docker pull your-registry/your-app:latest
docker run -d -p 8080:8080 your-registry/your-app:latest

使用GitHub Actions实现CI/CD

GitHub Actions提供内置的自动化工作流功能。在项目根目录创建.github/workflows/deploy.yml

name: Deploy SpringBoot App
on: [push]
jobs:build-and-deploy:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v2- name: Set up JDKuses: actions/setup-java@v2with:distribution: 'temurin'java-version: '17'- name: Build with Mavenrun: mvn clean package- name: Deploy to Serveruses: appleboy/ssh-action@masterwith:host: ${{ secrets.SERVER_HOST }}username: ${{ secrets.SERVER_USER }}password: ${{ secrets.SERVER_PASSWORD }}script: |nohup java -jar /path/to/your-app.jar > log.txt 2>&1 &

使用Ansible进行配置管理

Ansible可以实现服务器配置的标准化和批量部署。创建playbook文件deploy.yml

- hosts: allbecome: yestasks:- name: Copy JAR filecopy:src: target/your-app.jardest: /opt/your-app/- name: Ensure Java is installedapt:name: openjdk-17-jdkstate: present- name: Start applicationshell: |nohup java -jar /opt/your-app/your-app.jar > /var/log/your-app.log 2>&1 &

运行playbook:

ansible-playbook -i inventory.ini deploy.yml

Kubernetes集群部署

对于大规模部署,可以使用Kubernetes。创建Deployment和Service配置:

apiVersion: apps/v1
kind: Deployment
metadata:name: your-app
spec:replicas: 3selector:matchLabels:app: your-apptemplate:metadata:labels:app: your-appspec:containers:- name: your-appimage: your-registry/your-app:latestports:- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:name: your-app-service
spec:selector:app: your-appports:- protocol: TCPport: 80targetPort: 8080type: LoadBalancer

应用配置到Kubernetes集群:

kubectl apply -f deployment.yaml

相关文章:

  • Rust 通用代码生成器:莲花,红莲尝鲜版三十六,图片初始化功能介绍
  • 软件功能测试目的是啥?如何通过测试用例确保产品达标?
  • 五子棋测试用例
  • LRU 和 DiskLRU实现相册缓存器
  • Python计算字符串距离算法库之textdistance使用详解
  • 【2025】win11安装JDK11
  • 2025年- H73-Lc181--22.括号生成(回溯,组合)--Java版
  • intelrealsense深度相机产品介绍
  • Linux(线程控制)
  • 安卓基础(ProGuard vs R8)
  • 『React』Fragment的用法及简写形式
  • React - 组件通信
  • 使用React+ant Table 实现 表格无限循环滚动播放
  • 自托管图书搜索引擎Bookologia
  • next,react封装axios,http请求
  • react 常见的闭包陷阱深入解析
  • 2025 cs144 Lab Checkpoint 3: TCP Receiver
  • React 列表 Keys
  • 【React】useId
  • Python打卡训练营day46——2025.06.06
  • 云南科技网站建设/seo网站推广批发
  • 网站售后服务模板/百度账号怎么改名字
  • 监控做直播网站/cfa三级和一二级关系大吗
  • dw网页设计成品免费学霸/重庆seo教程博客
  • 加强企业门户网站建设/关键词优化骗局
  • 网站制作 那种语言好/搜索引擎排名营销