当前位置: 首页 > 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

http://www.lqws.cn/news/172225.html

相关文章:

  • LangChainGo入门指南:Go语言实现与OpenAI/Qwen模型集成实战
  • Matlab实现任意伪彩色图像可视化显示
  • 6.6 day38
  • Web 架构之 CDN 加速原理与落地实践
  • LabVIEW实时系统数据监控与本地存储
  • 保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
  • 从“人找政策”到“政策找人”:智能退税ERP数字化重构外贸生态
  • 自建 dnslog 回显平台:渗透测试场景下的隐蔽回显利器
  • 双碳时代,能源调度的难题正从“发电侧”转向“企业侧”
  • DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
  • DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
  • 全面理解 Linux 内核性能问题:分类、实战与调优策略
  • D3ctf-web-d3invitation单题wp
  • 数学建模期末速成 聚类分析与判别分析
  • 第16节 Node.js 文件系统
  • 传输层:udp与tcp协议
  • 前端基础之《Vue(19)—状态管理》
  • Node-RED 基于流程的可视化编程工具
  • $attrs 与 $listeners 透传
  • 【Python-Day 23】Python 模块化编程实战:创建、导入及 sys.path 深度解析
  • 嵌入式学习笔记 - FreeRTOS 信号量以及释放函数
  • vue中加载Cesium地图(天地图、高德地图)
  • Amazon Bedrock 助力 SolveX.AI 构建智能解题 Agent,打造头部教育科技应用
  • 火语言RPA--应用列表
  • CMake控制VS2022项目文件分组
  • Spring AI 入门:Java 开发者的生成式 AI 实践之路
  • 8.1_排序的基本概念
  • 有声书画本
  • 基于JWT+SpringSecurity整合一个单点认证授权机制
  • 光耦合器:隐形守护者,拓展无限应用