jenkins部署前端vue項目使用Docker+Jenkinsfile方式

文章目錄

  • 前言
  • 一、前提準備
  • 二、準備構建文件
  • 三、Jenkins中構建項目
  • 總結


前言

前面通過jenkins+docker的方式部署了若依前端vue項目,接下來接著學習使用Jenkinsfile的方式部署前端vue項目。


一、前提準備

已經安裝好centos服務器,并且安裝了jenkins和docker。gitee中新建工程,并且上傳ruoyi-vue項目成功。
在這里插入圖片描述

二、準備構建文件

打開ry-vue-ui前端項目,新建docker文件夾,新建Dockerfile、.dockerignore、nginx.conf三個配置文件。
在這里插入圖片描述

Dockerfile鏡像構建文件內容如下:

# 拉取nginx基礎鏡像
FROM nginx:1.21.1# 維護者信息
MAINTAINER zhy# 將dist文件中的內容復制到 `/usr/share/nginx/html/` 這個目錄下面
COPY dist/  /usr/share/nginx/html/
# 用本地配置文件來替換nginx鏡像里的默認配置
COPY nginx.conf /etc/nginx/nginx.conf# 對外暴漏的端口號
# [注:EXPOSE指令只是聲明容器運行時提供的服務端口,給讀者看有哪些端口,在運行時只會開啟程序自身的端口!!]
EXPOSE 80# 啟動nginx容器
CMD ["nginx", "-g", "daemon off;"]

.dockerignore忽略文件內容如下:

node_modules

nginx.conf配置文件內容如下:

worker_processes  1;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;server {# nginx 監聽端口listen       80;# 服務器ipserver_name  192.168.17.79;location / {# 前端資源存放路徑root   /usr/share/nginx/html;index  index.html index.htm;try_files $uri $uri/ /index.html;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}
}

在前端項目根目錄新建Jenkinsfile
在這里插入圖片描述

內容如下:

pipeline {agent any// 環境變量environment {// 名稱APP_NAME = 'vue-web'// 環境APP_PROFILE = 'prod'// 鏡像名稱APP_IMAGE = 'ry-vue-web'// 端口APP_PORT = 99}stages {stage('vue環境準備') {steps {sh """cd ry-vue-demo-ui/# 下載依賴 & 構建distsudo npm install && sudo npm run build:${APP_PROFILE}# 拷貝dist到Docker目錄下cp -r dist 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 ry-vue-demo-ui/docker/# 構建鏡像docker build -f Dockerfile -t ${APP_IMAGE} . --no-cache"""}}stage('運行容器') {steps {sh """docker run -d -p ${APP_PORT}:80 --restart=always --name ${APP_NAME} ${APP_IMAGE}"""}}}
}

提交代碼到gitee中

注意:以上文件內容涉及到的路徑均需和你自己的路徑匹配,不一致記得修改。

三、Jenkins中構建項目

打開jenkins新建任務,選擇流水線項目
在這里插入圖片描述
增加描述信息
在這里插入圖片描述
流水線選擇SCM
在這里插入圖片描述
選擇git
在這里插入圖片描述
復制你gitee中的項目地址
在這里插入圖片描述
粘貼到jenkins中,選擇憑證和分支,沒有憑證的話,點擊添加自行添加gitee的用戶憑證
在這里插入圖片描述
然后保存,立即構建,可以查看控制臺輸出在這里插入圖片描述
我這里報錯了,是因為在這個項目下沒有找到Jenkinsfile文件,他可能有個檢測機制
在這里插入圖片描述
點擊配置,修改Jenkinsfile的路徑,因為我的Jenkinsfile是在前端工程下面,沒有在整個項目下面,所以需要加前端項目路徑。
在這里插入圖片描述
保存,接著構建
在這里插入圖片描述
構建成功,瀏覽器訪問項目測試
在這里插入圖片描述


總結

以上就是今天要講的內容,本文介紹了jenkins部署使用Jenkinsfile文件部署前端vue項目,Jenkinsfile文件的作用就是把腳本命令放在文件中統一管理。

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

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

相關文章

Cadence操作說明

一.allegro修改絲印字體大小的方法 1.選擇Edit–>Change,右側彈出Options選項,選擇Class : New subclass Ref Des : Silkscreen_Top,設置Text block,后面的數字代表字號的大小。菜單菜單欄選擇Setup–>Design Parameters&a…

使用Stitch來生成CrypyTrack的app程序

結果: 🧭 第一步:訪問 Stitch 平臺 打開網址:stitch.withgoogle.com使用你的 Google 賬號登錄,無需安裝任何軟件 🧱 第二步:選擇設計模式 Stitch 提供兩種模式: 標準模式&#xf…

告別繁瑣:API全生命周期管理的新范式——apiSQL

API(應用程序接口)是連接數據與服務的生命線,是數字世界的基石。然而,一個高質量API的誕生并非易事,它涉及一個漫長而復雜的全生命周期——從規劃設計到最終退役,每個環節都需要專門的工具和技能&#xff0…

R 語言科研繪圖第 64 期 --- 啞鈴圖

在發表科研論文的過程中,科研繪圖是必不可少的,一張好看的圖形會是文章很大的加分項。 為了便于使用,本系列文章介紹的所有繪圖都已收錄到了 sciRplot 項目中,獲取方式: R 語言科研繪圖模板 --- sciRplothttps://mp.…

基于MaxCompute MaxFrame 汽車自動駕駛數據預處理最佳實踐

一、背景及挑戰在汽車自動駕駛場景中,車端(量產車、研采車)持續產生并采集海量數據,包括圖片、音視頻、雷達、GPS等內容,這些數據通常以 ROSbag文件形式進行存儲。行業需求:自動駕駛依賴海量多模態數據&…

NLP:RNN文本生成案例分享

本文目錄:一、導入工具包二、數據集三、 構建詞表四、 構建數據集對象五、 構建網絡模型六、 構建訓練函數七、構建預測函數前言:上篇文章講解了RNN,這篇文章分享文本生成任務案例:文本生成是一種常見的自然語言處理任務&#xff…

AI時代的接口自動化優化實踐:如何突破Postman的局限性

編者語:本文作者為某非銀金融測試團隊負責人。其團隊自 2024 年起局部試用 Apipost,目前已在全團隊正式投入使用 。在推進微服務 API 自動化測試的過程中,研發和測試人員常常需要在接口請求中動態構造帶有特定業務規則的數據。我們團隊就遇到…

動態規劃題解_將一個數字表示成冪的和的方案數【LeetCode】

2787. 將一個數字表示成冪的和的方案數 給你兩個正整數 n 和 x 。 請你返回將 n 表示成一些 互不相同 正整數的 x 次冪之和的方案數。換句話說,你需要返回互不相同整數 [n1, n2, ..., nk] 的集合數目,滿足 n n1x n2x ... nkx 。 由于答案可能非常…

C#常用的LinQ方法

LINQ(Language Integrated Query)是 .NET 中用于處理集合的強大工具,它提供了多種方法來簡化數據查詢和操作。以下是一些常用的 LINQ 方法及其功能:Where: 根據指定的條件篩選集合中的元素。var filteredResults matchResults.Wh…

目標檢測之數據增強

數據翻轉,需要把bbox相應的坐標值也進行交換代碼:import random from torchvision.transforms import functional as Fclass Compose(object):"""組合多個transform函數"""def __init__(self, transforms):self.transform…

DiffDet4SAR——首次將擴散模型用于SAR圖像目標檢測,來自2024 GRSL(ESI高被引1%論文)

一. 論文摘要 合成孔徑雷達(SAR)圖像中的飛機目標檢測是一項具有挑戰性的任務,由于離散的散射點和嚴重的背景雜波干擾。目前,基于卷積或基于變換的方法不能充分解決這些問題。 本文首次探討了SAR圖像飛機目標檢測的擴散模型&#…

html案例:編寫一個用于發布CSDN文章時,生成有關縮略圖

CSDN博客文章縮略圖生成器起因:之前注意到CSDN可以隨機選取文章縮略圖,但后來這個功能似乎取消了。于是我想調整一下縮略圖的配色方案。html制作界面 界面分上下兩塊區域,上面是參數配置,下面是效果預覽圖。參數配置: …

lightgbm算法學習

主要組件 Boosting #mermaid-svg-1fiqPsJfErv6AV82 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-1fiqPsJfErv6AV82 .error-icon{fill:#552222;}#mermaid-svg-1fiqPsJfErv6AV82 .error-text{fill:#552222;stroke:#…

安卓基于 FirebaseAuth 實現 google 登錄

安卓基于 FirebaseAuth 實現 google 登錄 文章目錄安卓基于 FirebaseAuth 實現 google 登錄1. 前期準備1.1 創建 Firebase 項目1.2 將 Android 應用連接到 Firebase1.3 在 Firebase 控制臺中啟用 Google 登錄2. 在 Android 應用中實現 Google 登錄2.1 初始化 GoogleSignInClien…

李宏毅(Deep Learning)--(三)

一.前向傳播與反向傳播的理解:二.模型訓練遇到的問題在模型訓練中,我們可能會遇到效果不好的情況,那么我們應該怎么思考切入,找到問題所在呢?流程圖如下:第一個就是去看訓練的損失函數值情況。如果損失較大…

android studio 運行,偶然會導致死機,設置Memory Settings嘗試解決

1、android studio導致死機 鼠標不能動,鍵盤沒有反應,只能硬重啟,但是內存并沒有用完,cpu也不是100% 2、可能的原因 android studio內存設置的問題,為了限制占用內存,所以手工設置內存最小的一個&#x…

HTB 賽季8靶場 - Outbound

Rustscan掃描我們開局便擁有賬號 tyler / LhKL1o9Nm3X2,我們使用rustscan進行掃描 rustscan -a 10.10.11.77 --range 1-65535 --scan-order "Random" -- -A Web服務漏洞探查 我們以賬號tyler / LhKL1o9Nm3X2登錄webmail,并快速確認版本信息。該…

動態組件和插槽

[Vue2]動態組件和插槽 動態組件和插槽來實現外部傳入自定義渲染 組件 <template><!-- 回復的處理進度 --><div v-if"steps.length > 0" class"gain-box-header"><el-steps direction"vertical"><div class"l…

Unreal5從入門到精通之如何實現UDP Socket通訊

文章目錄 一.前言二.什么是FSocket1. FSocket的作用2. FSocket關鍵特性三.創建Socket四.數據傳輸五.線程安全六.UDPSocketComponentUDPSocketComponent.hUUDPSocketComponent.cpp七.SocketTest測試八.最后一.前言 我們在開發UE 的過程中,會經常使用到Socket通訊,包括TCP,UD…

UI前端大數據處理新趨勢:基于邊緣計算的數據處理與響應

hello寶子們...我們是艾斯視覺擅長ui設計、前端開發、數字孿生、大數據、三維建模、三維動畫10年經驗!希望我的分享能幫助到您!如需幫助可以評論關注私信我們一起探討!致敬感謝感恩!一、引言&#xff1a;前端大數據的 “云端困境” 與邊緣計算的破局當用戶在在線文檔中實時協作…