jenkins使用Jenkinsfile部署springboot+docker項目

文章目錄

  • 前言
  • 一、前期準備
  • 二、編輯構建文件
  • 二、Jenkins構建
  • 總結


前言

前面使用Jenkinsfile部署了前端vue項目,接著學習Jenkinsfile部署springboot項目。


一、前期準備

已經安裝好centos,并且安裝了jenkins和docker。本地新建springboot并上傳到gitee上。

二、編輯構建文件

打開本地工程,新增docker文件夾,新增Dockerfile文件
在這里插入圖片描述
內容如下:

# jre基礎環境
FROM openjdk:8-jre-alpine# 維護者信息
MAINTAINER zhy# 設置環境變量-運行時也可傳參進來哈
ENV JAVA_OPTS ""# 添加jar包到容器中 -- tips: xx.jar 和 Dockerfile 在同一級
ADD *.jar /home/app.jar# 對外暴漏的端口號
# [注:EXPOSE指令只是聲明容器運行時提供的服務端口,給讀者看有哪些端口,在運行時只會開啟程序自身的端口!!]
EXPOSE 8080# 以exec格式的CMD指令 -- 可實現優雅停止容器服務
# "sh", "-c" : 可通過exec模式執行shell  =》 獲得環境變量
CMD ["sh", "-c", "echo \"****** 運行命令:java -jar ${JAVA_OPTS} /home/app.jar\"   &   java -jar ${JAVA_OPTS} /home/app.jar"]

在根目錄新增Jenkinsfile文件
在這里插入圖片描述
內容如下:

pipeline {agent anyenvironment {APP_NAME = 'executor-test'APP_IMAGE = 'executor-test'APP_PORT = 9999}stages {stage('環境準備') {steps {sh """# maven打包mvn clean install -DskipTests# 拷貝jar到docker目錄下cp target/executor-test-0.0.1-SNAPSHOT.jar docker"""}}stage('構建Docker鏡像') {steps {sh """# 刪除舊容器docker ps -a | grep ${APP_NAME} | awk '{print \$1}' | xargs -i docker stop {} | xargs -i docker rm {}# 刪除舊鏡像docker images | grep ${APP_NAME} | awk '{print \$3}' | xargs -i docker rmi {}# 進入Docker目錄cd docker# 構建鏡像docker build -f Dockerfile -t ${APP_IMAGE} . --no-cache"""}}stage('運行容器') {steps {sh """docker run -d -p ${APP_PORT}:8080 --restart=always --name ${APP_NAME} ${APP_IMAGE}"""}}}
}

提交代碼到gitee上,注意文件中的地址要與你自己項目的一致。

二、Jenkins構建

登錄jenkins新建任務
在這里插入圖片描述
添加描述信息
在這里插入圖片描述
流水線選擇SCM
在這里插入圖片描述
選擇git
在這里插入圖片描述
粘貼gitee中項目地址,選擇憑證,如果沒有憑證,點擊添加即可。
在這里插入圖片描述
點擊保存,立即構建
可查看控制臺日志輸出
在這里插入圖片描述
這里遇到了一個錯誤,打包的鏡像名稱不能用大寫
在這里插入圖片描述
修改Jenkinsfile文件
在這里插入圖片描述
提交代碼,接著構建
在這里插入圖片描述
構建成功,打開瀏覽器訪問接口測試
在這里插入圖片描述


總結

以上就是今天要講的內容,本文介紹了jenkins使用Jenkinsfile部署springboot項目。

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

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

相關文章

使用ESM3蛋白質語言模型進行快速大規模結構預測

文章目錄ESM3介紹ESM3在線使用本地使用api批量預測ESM相較于AlphaFold的優勢ESM3介紹 ESM3是由EvolutionaryScale(前Meta團隊)開發的一款蛋白質大語言模型,于2025年以《用語言模型模擬 5 億年的進化》為題正式發表在Science上 文章鏈接: htt…

PostgreSQL 時間/日期管理詳解

PostgreSQL 時間/日期管理詳解 引言 PostgreSQL是一款功能強大的開源關系型數據庫管理系統,在時間/日期管理方面具有獨特的優勢。本文將詳細介紹PostgreSQL中時間/日期數據類型及其相關功能,幫助讀者更好地理解和應用時間/日期管理。 時間/日期數據類型 …

Agent篇

Agent包含哪些模塊,實現了什么功能Agent 就像一個多功能的接口,它能夠接觸并使用一套工具。根據用戶的輸入,Agent會規劃出一條解決用戶問題的路線,決定其中需要調用哪些工具,并調用這些工具。Agent 大語言模型規劃記憶…

利用 MySQL 進行數據清洗

利用 MySQL 進行數據清洗是數據預處理的重要環節,以下是常見的數據清洗操作及對應 SQL 示例:1. 去除重復數據使用 ROW_NUMBER() 或 GROUP BY 識別并刪除重復記錄。-- 查找重復記錄(以 user_id 和 email 為例) WITH Duplicates AS …

【MySQL筆記】事務的ACID特性與隔離級別

目錄1. 什么是事務?2. 事務的ACID特性(重要)3. 事務控制語法4. 隔離級別與并發問題1. 什么是事務? 事務(Transaction)是由一組SQL語句組成的邏輯單元,這些操作要么全部成功,要么全部…

Mock 數據的生成與使用全景詳解

Mock 數據的生成與使用全景詳解 在后端開發過程中,真實數據往往受限于業務進度、隱私保護或接口未完成等因素,無法及時獲取。這時,Mock數據(模擬數據)就成為開發、測試、聯調不可或缺的利器。本文將從Mock數據的意義、常用場景、主流工具、實戰案例到最佳實踐,帶你全面掌…

HTML 標題標簽

需求&#xff1a;在網頁顯示六級標題標簽。代碼&#xff1a;//需求&#xff1a;在網頁顯示六級標題標簽。 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title></title></head><body><h1>一級標題&l…

(限免!!!)全國青少年信息素養大賽-算法創意實踐挑戰賽小學組復賽(代碼版)

選擇題部分在 C 中&#xff0c;以下代表布爾類型的是&#xff08;  &#xff09;選項&#xff1a;A. double B. bool C. int D. char答案&#xff1a;B解析&#xff1a;C 中布爾類型的關鍵字為bool&#xff0c;用于存儲邏輯值true或false。執行以下程序&#xff0c;輸出的…

編譯器優化——LLVM IR,零基礎入門

編譯器優化——LLVM IR&#xff0c;零基礎入門 對于大多數C開發者而言&#xff0c;我們的代碼從人類可讀的文本到機器可執行的二進制文件&#xff0c;中間經歷的過程如同一個黑箱。我們依賴編譯器&#xff08;如GCC, Clang, MSVC&#xff09;來完成這項復雜的轉換。然而&#x…

react中為啥使用剪頭函數

在 React 中使用箭頭函數&#xff08;>&#xff09;主要有以下幾個原因&#xff1a;1. 自動綁定 this傳統函數的問題&#xff1a;在類組件中&#xff0c;普通函數的this指向會根據調用方式變化&#xff0c;導致在事件處理函數中無法正確訪問組件實例&#xff08;this為undef…

JavaSE-多態

多態的概念在完成某個行為時&#xff0c;不同的對象在完成時會呈現出不同的狀態。比如&#xff1a;動物都會吃飯&#xff0c;而貓和狗都是動物&#xff0c;貓在完成吃飯行為時吃貓糧&#xff0c;狗在完成吃飯行為時吃狗糧&#xff0c;貓和狗都會叫&#xff0c;狗在完成這個行為…

TDengine 使用最佳實踐(2)

TDengine 使用最佳實踐&#xff08;1&#xff09; 安裝部署 目錄規劃 軟件安裝 參數配置 時鐘同步 驗證環境 集群部署 寫入查詢 連接方式 數據寫入 數據查詢 運維巡檢 運維規范 數據庫啟停 狀態檢查 運維技巧 日常巡檢 數據庫升級 故障排查 故障定位 日志調試 故障反饋 關于 T…

如何通過公網IP訪問部署在kubernetes中的服務?

背景說明我們有些私有化部署的項目&#xff0c;使用k8s來承載服務&#xff0c;通過ingress-nginx轉發外部的請求到集群。有時候業主的域名沒有申請下來&#xff0c;我們會配置臨時的域名&#xff0c;測試同事配置主機hosts來完成功能驗證&#xff0c;等功能驗證完畢后&#xff…

Datawhale AI 夏令營2025科大訊飛AI大賽<夏令營:用AI做帶貨視頻評論分析>

賽題題目 任務一&#xff1a;商品識別 基于視頻內容識別對應的商品 【情感分析】對評論文本進行多維度情感分析&#xff0c;涵蓋維度見數據說明&#xff1b; 任務二&#xff08;文本分類&#xff09;&#xff1a;從非結構化評論中提取情感傾向 評論聚類】按商品對歸屬指定維度的…

AI 時代的分布式多模態數據處理實踐:我的 ODPS 實踐之旅、思考與展望

AI 時代的分布式多模態數據處理實踐&#xff1a;我的 ODPS 實踐之旅、思考與展望 &#x1f31f;嗨&#xff0c;我是LucianaiB&#xff01; &#x1f30d; 總有人間一兩風&#xff0c;填我十萬八千夢。 &#x1f680; 路漫漫其修遠兮&#xff0c;吾將上下而求索。 目錄 1. 什…

硬件工程師筆試面試高頻考點匯總——(2025版)

目錄 1 電子器件部分 1.1 電阻 1.1.1 電阻選型時一般從哪幾個方面進行考慮? 1.1.2 上拉下拉電阻的作用 1.1.3 PTC熱敏電阻作為電源電路保險絲的工作原理 1.1.4 如果阻抗不匹配&#xff0c;有哪些后果 1.1.5 電阻、電容和電感0402、0603和0805封裝的含義 1.1.6 電阻、電…

華為HarmonyOS 5.0深度解析:跨設備算力池技術白皮書(2025全場景智慧中樞)

??摘要??HarmonyOS 5.0的??跨設備算力池技術??正在重構終端計算范式。本文首次系統性拆解其技術內核&#xff1a;通過??異構硬件資源虛擬化??、??任務流圖調度引擎??、??確定性時延網絡??三大支柱&#xff0c;實現手機、汽車、智慧屏等設備的算力動態聚合與…

ASP.NET Core 中的延遲注入:原理與實踐

在軟件開發中&#xff0c;依賴注入已成為構建可維護、可測試和可擴展應用程序的核心模式。ASP.NET Core 內置的依賴注入容器為我們管理服務生命周期提供了極大的便利。然而在某些特定場景下&#xff0c;我們可能不希望某個依賴項在宿主對象被創建時立即實例化&#xff0c;而是希…

PHP內存溢出問題的深度分析與系統解決方案

文章目錄一、問題本質&#xff1a;什么是PHP內存溢出&#xff1f;內存管理核心原理二、高頻內存溢出場景深度解析場景1&#xff1a;大數據集不當處理場景2&#xff1a;無限遞歸陷阱場景3&#xff1a;實體關系映射&#xff08;ORM&#xff09;的N1問題場景4&#xff1a;未及時釋…

常見 HTTP 方法的成功狀態碼200,204,202,201

HTTP 協議中&#xff0c;操作成功后的狀態碼選擇取決于操作類型和響應內容&#xff0c;并非所有非 GET/POST 請求都返回 204。以下是常見 HTTP 方法的成功狀態碼規范&#xff1a;1. GET200 OK&#xff1a;默認成功狀態碼&#xff0c;表示請求成功且返回了資源內容。206 Partial…