Jenkins 簡易使用記錄

一、Jenkins 核心功能與適用場景
  1. 核心功能

    • 持續集成(CI):自動構建代碼、運行單元測試。
    • 持續交付(CD):自動化部署到測試/生產環境。
    • 任務調度:定時執行任務(如備份、清理)。
    • 插件生態:支持 1,500+ 插件(Git、Docker、Kubernetes 等)。
  2. 適用場景

    • 自動化測試:每次提交后自動運行測試。
    • 多環境部署:一鍵發布到開發、測試、生產環境。
    • 微服務架構:并行構建多個服務。
    • 跨團隊協作:通過流水線規范開發流程。

二、Jenkins 使用流程(通用步驟)
  1. 安裝與配置

    • 通過 Docker 或原生安裝(推薦 Docker 簡化依賴):
      docker run -d -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts
      
    • 初始化后安裝常用插件:Git、Pipeline、SSH。
  2. 創建任務

    • 自由風格項目:適合簡單任務。
    • Pipeline 項目:通過 Jenkinsfile 定義復雜流程(推薦)。

三、Spring Boot 項目部署示例
場景:將 Spring Boot 項目構建為 JAR 包并部署到 Linux 服務器。
  1. Jenkins 配置

    • 憑據管理:添加 Git 倉庫的 SSH 密鑰和服務器 SSH 賬號。
    • 安裝插件:Maven Integration、Publish Over SSH。
  2. Pipeline 腳本(Jenkinsfile)

    pipeline {agent anystages {stage('Checkout') {steps {git url: 'git@github.com:your/spring-boot-repo.git', branch: 'main'}}stage('Build') {steps {sh 'mvn clean package -DskipTests'}}stage('Deploy') {steps {sshPublisher(publishers: [sshPublisherDesc(configName: 'prod-server',transfers: [sshTransfer(sourceFiles: 'target/*.jar',removePrefix: 'target/',remoteDirectory: '/opt/app',execCommand: 'sudo systemctl restart springboot-app')])])}}}
    }
    
  3. 服務器準備

    • 創建 Systemd 服務文件 /etc/systemd/system/springboot-app.service
      [Unit]
      Description=Spring Boot App
      After=network.target[Service]
      ExecStart=/usr/bin/java -jar /opt/app/your-app.jar
      User=appuser
      Restart=always[Install]
      WantedBy=multi-user.target
      

四、Vue 項目部署示例
場景:構建 Vue 靜態文件并部署到 Nginx 服務器。
  1. Pipeline 腳本(Jenkinsfile)

    pipeline {agent anystages {stage('Checkout') {steps {git url: 'git@github.com:your/vue-project.git', branch: 'main'}}stage('Build') {steps {sh 'npm install'sh 'npm run build'}}stage('Deploy') {steps {sshPublisher(publishers: [sshPublisherDesc(configName: 'frontend-server',transfers: [sshTransfer(sourceFiles: 'dist/**',remoteDirectory: '/usr/share/nginx/html',execCommand: 'sudo systemctl reload nginx')])])}}}
    }
    
  2. 服務器配置

    • 確保 Nginx 配置指向 /usr/share/nginx/html
      server {listen 80;root /usr/share/nginx/html;index index.html;
      }
      

五、最佳實踐與建議
  1. Pipeline 優化

    • Jenkinsfile 納入代碼倉庫,實現“流水線即代碼”。
    • 使用 parallel 階段加速多模塊構建。
  2. 安全與維護

    • 敏感信息管理:使用 Jenkins 的 Credentials Binding 插件注入密碼。
    • 鏡像倉庫集成:結合 Docker 構建鏡像并推送到 Harbor 或 Docker Hub。
    • 回滾機制:通過版本號或 Git Tag 快速回退。
  3. 高級場景

    • Kubernetes 部署:使用 Jenkins Kubernetes 插件動態創建 Pod。
    • 多環境配置:通過參數化構建選擇環境(dev/test/prod)。

六、常見問題處理
  • 構建失敗定位:查看控制臺日志,優先解決編譯錯誤。
  • 權限問題:確保 Jenkins 用戶有服務器 SSH 權限和文件寫入權限。
  • 網絡超時:配置 Jenkins 代理或調整超時時間。

通過以上步驟,可高效實現 Spring Boot 和 Vue 項目的自動化部署,顯著提升 DevOps 效率。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/901969.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/901969.shtml
英文地址,請注明出處:http://en.pswp.cn/news/901969.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【HFP】藍牙HFP協議音頻連接核心技術深度解析

目錄 一、音頻連接建立的總體要求 1.1 發起主體與時機 1.2 前提條件 1.3 同步連接的建立 1.4 通知機制 二、不同主體發起的音頻連接建立流程 2.1 連接建立觸發矩陣 2.2 AG 發起的音頻連接建立 2.3 HF 發起的音頻連接建立 三、編解碼器連接建立流程 3.1 發起條件 3.…

【卡洛詩】成為平價市場中的標桿西餐廳

近年來,中國餐飲市場在消費分級趨勢下面臨結構性調整,消費者對“質價比”的追求催生了新賽道的崛起。在這一背景下,卡洛詩西餐憑借精準的定位與系統性創新,以“中式西餐”為核心理念,成功打破西餐高價壁壘,…

嵌入式設備網絡的動態ID分配機制實現

文章目錄 前言一、系統設計要點二、核心數據結構2.1 設備唯一標識(DeviceUID)2.2 節點信息(Node)2.3 節點管理器(NodeManager) 三、核心算法實現3.1 初始化與清理3.1.1 初始化節點管理器3.1.2 清理節點管理器 3.2 動態ID分配策略3.2.1 查找最小可用ID3.2.2 ID使用檢查 3.3 心跳…

WebSocket 雙向通信技術詳解

引言 在現代Web應用中,實時通信已經成為不可或缺的一部分。想象一下聊天應用、在線游戲、股票交易平臺或協作工具,這些應用都需要服務器能夠即時將更新推送給客戶端,而不僅僅是等待客戶端請求。WebSocket技術應運而生,它提供了一…

kafka菜鳥教程

一、kafka原理 1、kafka是一個高性能的消息隊列系統,能夠處理大規模的數據流,并提供低延遲的數據傳輸,它能夠以每秒數十萬條消息的速度進行讀寫操作。 二、kafka優點 1、服務解耦 (1)提高系統的可維護性? 通過服務…

SQLMap工具使用

一、SQLMap介紹 SQLMap 是一款強大的開源自動化 SQL 注入工具,用于檢測和利用 Web 應用程序中的 SQL 注入漏洞。其工作原理是SQLMap 通過向目標 URL 發送帶有特殊構造的 SQL 語句的請求,觀察目標應用程序的響應,來判斷是否存在 SQL 注入漏洞…

virtualbox安裝xp系統卡頓的解決

安裝virtualbox的增強功能即可。 先去下載 — Oracle VirtualBox下載 VirtualBox Guest Additions iso鏡像 然后在這里導入iso鏡像 再按照這幾步操作 virtualbox按鍵 強制關閉xp-cuckoo的虛擬機 VBoxManage controlvm "xp-cuckoo" poweroff

觀察者 ? 事件總線:一路走來的碎碎念

寫給未來的自己:每次手敲事件模型都要 Google,干脆把思路和踩坑一次性記清楚。文章很長,都是嘮叨,目的是讓自己看兩眼就能把設計理由找回來。 目錄 為什么我要折騰事件模型?V0 ─ 單一事件的觀察者模式V1 ─ 多事件同步總線(類型拆分)V2 ─ 訂閱者優先級(鏈式調用可控)…

windwos腳本 | 基于scrcpy,只投聲音、只投畫面

安裝scrcpy,scrcpy自帶adb 寫腳本命名為 .bat 結尾 注意這里的set "PATHD:\tools\scrcpy-win64-v3.2;%PATH%" 替換成scrcpy的安裝目錄 echo off :: 設置UTF-8編碼 chcp 65001 > nul :: 設置標題 title 手機投屏工具:: 添加 scrcpy 路徑到 PATH set &q…

Android device PCO (protocol configuration options) intro

術語 英文縮寫英文全稱中文PCOprotocol configuration options協議配置選項RILradio interface layer 無線電接口層PCO介紹 PCO(Protocol Configuration Options) 是 3GPP 標準協議(TS 24.008)中定義的核心概念,用于在 LTE/5G 網絡建立 PDN 連接時傳遞動態配置參數(如 D…

Spring Boot配置文件優先級全解析:如何優雅覆蓋默認配置?

📚 一、為什么需要了解配置文件優先級? 想象一下,你正在玩一個游戲🎮,游戲里有默認設置,但你可以通過不同的方式修改這些設置: 游戲內置的默認設置(就像Spring Boot的默認配置&…

汽車行駛工況特征參數:從“速度曲線”到“駕駛DNA”的硬核解碼

作為新能源汽車行業的從業者,你是否曾困惑于這些問題: 為什么同一款電動車,不同用戶的實際續航差異高達30%?如何精準量化駕駛行為對電池壽命的影響?車企標定的“NEDC續航”與真實路況差距的根源是什么? 這…

HTTP 2.0 協議特性詳解

1. 使用二進制協議,簡化傳輸的復雜性,提高了效率 2. 支持一個 TCP 鏈接發起多請求,移除 pipeline HTTP/2 移除了 HTTP/1.1中的管道化(pipeline)機制,轉而采用多路復用(Multiplexing&#xff0…

完美解決瀏覽器不能復制的問題(比如賽氪網的中題庫練習題)

僅供復制題庫題目進行打印學習使用! 最近想把賽氪網題庫中的題目打印出來做練習,發現題庫中的題目不能復制,不能在試卷上勾畫標記太難受了,而且不能留作材料以后復習,故出此策。 而且CtrlP打印出的pdf會缺少題目。(我…

std::set (C++)

std::set 1. 概述定義特點 2. 內部實現3. 性能特征4. 常用 API5. 使用示例6. 自定義比較器7. 注意事項與優化8. 使用建議 1. 概述 定義 template<class Key,class Compare std::less<Key>,class Allocator std::allocator<Key> > class std::set;特點 有…

SSM省市區三級聯動和三表聯查附帶數據庫

SSM省市區三級聯動和三表聯查 ------附帶數據庫碼云地址&#xff1a;https://gitee.com/Mr_ZKC/NO1 數據庫在項目中

曲棍球·棒球1號位

中國女子曲棍球隊曾涌現過馬弋博、李紅俠等優秀選手&#xff0c;但“李紅”這一名字可能為信息誤差。以下為您系統介紹曲棍球&#xff0c;并結合棒球進行對比分析&#xff1a; 曲棍球&#xff08;Hockey&#xff09;核心特點 運動形式 分為草地曲棍球&#xff08;夏季奧運會項…

12芯束裝光纖不同包層線顏色之間的排列順序

為什么光纖線必須按照以下顏色順序進行排序&#xff1f;這其實是為了防止光污染的問題&#xff0c;不同顏色在傳遞光時從包層表皮漏光傳感到梳妝的其它纖芯上&#xff0c;會有光污染的問題&#xff0c;而為了減少并防止光污染的現象&#xff0c;所以在光通信之中&#xff0c;需…

c++程序的打包編譯cmake+make

c打包編譯 1 在不用系統中打包介紹1.1 linux中打包c程序的2種方式1.2 windows中打包c程序1.3 cmakeNinja和cmakemake的兩種方式對比1.3.1 Ninja是什么&#xff08;可以認為是make工具的一個替代產品&#xff09;1.3.2 cmakeNinja可以用于linux和windows系統中&#xff0c;編譯效…