中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

沒(méi)有網(wǎng)站可以域名備案嗎西安網(wǎng)站seo診斷

沒(méi)有網(wǎng)站可以域名備案嗎,西安網(wǎng)站seo診斷,建論壇網(wǎng)站,怎么用Visio studio做網(wǎng)站各位小伙伴們大家好呀,我是小金,本篇文章我們將介紹如何使用Pipeline流水線部署我們自己的微服務(wù)項(xiàng)目,之前沒(méi)怎么搞過(guò)部署相關(guān)的,以至于構(gòu)建流水線的過(guò)程中中也遇到了很多自己以前沒(méi)有考慮過(guò)的問(wèn)題,特寫(xiě)此篇&#xff0…

各位小伙伴們大家好呀,我是小金,本篇文章我們將介紹如何使用Pipeline流水線部署我們自己的微服務(wù)項(xiàng)目,之前沒(méi)怎么搞過(guò)部署相關(guān)的,以至于構(gòu)建流水線的過(guò)程中中也遇到了很多自己以前沒(méi)有考慮過(guò)的問(wèn)題,特寫(xiě)此篇,用于個(gè)人記錄與分享。

一 、基礎(chǔ)插件安裝

1.1 安裝與配置Maven插件
安裝Maven 插件。

在這里插入圖片描述

搜索 maven,選中 Maven Integration 進(jìn)行安裝。

在這里插入圖片描述

配置maven工具

安裝完成后,需要配置Maven工具,我們的自動(dòng)化構(gòu)建任務(wù)是使用 Maven 構(gòu)建的,需要告知Jenkins Maven的安裝位置。
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

1.2 安裝與配置ndoe插件
安裝NodeJS插件

在這里插入圖片描述

配置NodeJS工具

在這里插入圖片描述

1.3 安裝與配置ssh插件
安裝ssh插件

這個(gè)插件的作用就是將 Jenkins 構(gòu)建的 SpringBoot 項(xiàng)目的 jar 包發(fā)布的業(yè)務(wù)服務(wù)器上。

在這里插入圖片描述

配置業(yè)務(wù)服務(wù)器

找到系統(tǒng)配置
在這里插入圖片描述

拉到最下面找到 Publish over SSH,安裝完 SSH 插件才有這個(gè)選項(xiàng)。

在這里插入圖片描述

Server是可以有多個(gè)的,新增一個(gè) SSH Server。
在這里插入圖片描述
在這里插入圖片描述

在最下面有個(gè)測(cè)試的按鈕,可以測(cè)試一下配置有沒(méi)有問(wèn)題,沒(méi)有問(wèn)題,保存配置。

二 、構(gòu)建微服務(wù)項(xiàng)目流水線

2.1 創(chuàng)建構(gòu)建任務(wù)

在這里插入圖片描述

編寫(xiě)流水線腳本,依照需求實(shí)現(xiàn)不同的步驟,這里貼出博主的一個(gè)配置僅供參考
在這里插入圖片描述

2.2 shell腳本

1、jenkins腳本命令,這里博主的服務(wù)器和jenkins是在一臺(tái)服務(wù)器上,所以在jar發(fā)送階段直接使用的shell命令,如果不在一臺(tái)服務(wù)器上則使用ssh插件,這里不在贅述

pipeline {agent anytools {maven 'maven3'}stages {stage('拉取代碼') {steps {git branch: 'dev', credentialsId: '20250730-853d-40dc-be30-xxxxxxxx', url: 'https://gitee.com/xxx/xxx.git'echo '拉取代碼完成!'}}stage('執(zhí)行構(gòu)建') {steps {dir('kingoffice-auth') {sh """mvn --versionmvn clean package -DskipTests"""echo '執(zhí)行構(gòu)建成功!'}}}stage('執(zhí)行更新安裝包文件進(jìn)程') {steps {script {def currentTime = new Date().format("yyyyMMddHHmmss")def jarFile = 'kingoffice-auth/target/kingoffice-auth.jar'def targetDir = '/kim/project/auth/'def targetFile = "${targetDir}kingoffice-auth.jar"def dockerFile = 'docker/kim/auth/Dockerfile'def deployScript = 'docker/kim/auth/deploy.sh'// 檢查并創(chuàng)建目標(biāo)目錄sh "sudo mkdir -p ${targetDir}"// 檢查目標(biāo)目錄是否存在同名 JAR 文件if (fileExists(targetFile)) {// 重命名 JAR 文件def newTargetFile = "${targetDir}kingoffice-auth-${currentTime}.jar"sh "sudo mv ${targetFile} ${newTargetFile}"echo "已重命名文件為: ${newTargetFile}"}// 復(fù)制新生成的 JAR 文件sh "sudo cp ${jarFile} ${targetDir}"echo '發(fā)送 JAR 文件成功!'// 刪除目標(biāo)目錄下的同名 Dockerfile 和 deploy.sh 文件sh "sudo rm -f ${targetDir}Dockerfile"sh "sudo rm -f ${targetDir}deploy.sh"// 復(fù)制新的 Dockerfile 和 deploy.sh 文件sh "sudo cp ${dockerFile} ${targetDir}"sh "sudo cp ${deployScript} ${targetDir}"echo '發(fā)送 Dockerfile 和 deploy.sh 成功!'}}}stage('構(gòu)建并啟動(dòng)容器') {steps {script {def targetDir = '/kim/project/auth/'def deployScriptPath = "${targetDir}deploy.sh"// 確保 deploy.sh 腳本具有執(zhí)行權(quán)限sh "sudo chmod +x ${deployScriptPath}"// 執(zhí)行 deploy.sh 腳本sh "sudo ${deployScriptPath}"echo '執(zhí)行啟動(dòng)容器完成!'}}}}
}
2.3 部署腳本 deploy.sh

#!/bin/bash# 項(xiàng)目名稱
projectName=kingoffice-auth# 年月日時(shí)分的時(shí)間戳
timestamp=$(date +%Y%m%d%H%M)# 新鏡像的名稱
newImageName=$projectName:$timestamp# 切換到包含Dockerfile的目錄
echo "切換到包含Dockerfile的目錄 /kim/project/auth/"
cd /kim/project/auth/ || { echo "切換目錄失敗,退出腳本"; exit 1; }echo "開(kāi)始構(gòu)建新鏡像: $newImageName"
# 1.首先使用Dockerfile打鏡像
docker build -t $newImageName .
if [ $? -ne 0 ]; then
echo "構(gòu)建新鏡像失敗"
exit 1
else
echo "構(gòu)建新鏡像成功"
fiecho "正在停止并刪除之前運(yùn)行的容器..."
# 2.停止并刪除之前運(yùn)行的容器
runningContainerId=$(docker ps | grep "$projectName" | awk '{print $1}')
if [ -n "$runningContainerId" ]; then
docker stop "$runningContainerId" && echo "容器已停止: $runningContainerId"
docker rm "$runningContainerId" && echo "容器已刪除: $runningContainerId"
fiecho "正在刪除舊鏡像..."
# 刪除除最新外的所有舊鏡像
oldImageTags=$(docker images | grep "$projectName" | awk '{print $2}' | grep -v "$timestamp" | sort | uniq)
for tag in $oldImageTags; dodocker rmi "${projectName}:${tag}" && echo "舊鏡像已刪除: ${projectName}:${tag}";
doneecho "創(chuàng)建日志目錄..."
# 在宿主機(jī)上創(chuàng)建logs目錄,用于容器掛載,這樣查看日志可以直接在宿主機(jī)查看,比較方便
mkdir -p ~/kim/project/auth/logsecho "正在運(yùn)行新的鏡像..."
# 3.運(yùn)行新的鏡像
docker run -d -p 9200:9200 --restart=always -v ~/kim/project/auth/logs:/kim/logs $newImageNameif [ $? -eq 0 ]; then
echo "新容器運(yùn)行成功"
else
echo "新容器運(yùn)行失敗"
exit 1
fi
2.4 使用沙盒生成命令

外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳
在這里插入圖片描述

上述配置完畢后,點(diǎn)擊生成流水線腳本,即生成對(duì)應(yīng)的腳本語(yǔ)言,復(fù)制到腳本文件中即可。

在這里插入圖片描述

流水線創(chuàng)建完成后,就可以進(jìn)行第一次構(gòu)建嘗試了。

三 、部署vue項(xiàng)目

3.1 創(chuàng)建構(gòu)建任務(wù)創(chuàng)建任務(wù)

選擇構(gòu)建一個(gè)自由風(fēng)格的軟件項(xiàng)目
在這里插入圖片描述

3.2 源碼管理

與上述添加遠(yuǎn)程倉(cāng)庫(kù)步驟一致。
在這里插入圖片描述

3.3構(gòu)建環(huán)境

勾選 Provider Node & npm bin/folder to PATH 。
在這里插入圖片描述

3.4 構(gòu)建步驟:

執(zhí)行構(gòu)建的時(shí)候,執(zhí)行 npm 命令進(jìn)行構(gòu)建就可以了,所以在 Build Step 選擇執(zhí)行 shell:
在這里插入圖片描述

3.5 shell命令
# 安裝依賴
npm install --registry=https://registry.npmmirror.com
# 構(gòu)建項(xiàng)目
npm run build:prod
# 將構(gòu)建結(jié)果打包
zip -r dist.zip dist
echo "打包成功"
# 檢查/kim/nginx/html/目錄下是否存在dist.zip文件,并進(jìn)行重命名處理
if [ -f "/kim/nginx/html/dist.zip" ]; thensudo mv /kim/nginx/html/dist.zip "/kim/nginx/html/dist_$(date +%Y%m%d%H%M%S).zip"
fi
# 將dist.zip文件移動(dòng)到/kim/nginx/html/目錄下
sudo mv dist.zip /kim/nginx/html/
# 刪除/kim/nginx/html/目錄下的dist文件夾
sudo rm -rf /kim/nginx/html/dist
# 解壓dist.zip至/kim/nginx/html/目錄,完成部署
sudo unzip /kim/nginx/html/dist.zip -d /kim/nginx/html/
echo "部署成功"

四 、問(wèn)題總結(jié)

4.1 構(gòu)建時(shí)間 相差八個(gè)小時(shí)

系統(tǒng)管理->腳本命令行->運(yùn)行下面代碼

在這里插入圖片描述

System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone','Asia/Shanghai')
4.2 構(gòu)建過(guò)程報(bào)錯(cuò) 找不到maven

查看構(gòu)建腳本 是否有此命令,此命令是告知jenkins使用哪個(gè)maven進(jìn)行構(gòu)建,博主使用的版本,不輸此命令,會(huì)報(bào)mvn找不到的錯(cuò)誤。

 tools {maven 'maven3'}
4.3 微服務(wù)私有jar找不到

博主最初maven使用的是阿里云的公開(kāi)鏡像,但是在微服務(wù)中有些依賴使我們項(xiàng)目生成的關(guān)系依賴jar,這在公共平臺(tái)是不可能找到的,博主想到的辦法是搭建個(gè)人私服倉(cāng)庫(kù),但是這個(gè)成本過(guò)大,于是就使用了阿里云免費(fèi)提供的私人云效倉(cāng)庫(kù)。創(chuàng)建過(guò)程不再贅述,這里只講重點(diǎn)遇到的問(wèn)題。
1、maven配置文件,直接使用阿里settings文件即可,或者按需配置。

在這里插入圖片描述

2、第一次推送成功,第二次推送取失敗
1、私有jar上傳前改一下版本號(hào)
2、開(kāi)啟允許覆蓋指令。

在這里插入圖片描述

4.4 執(zhí)行shell命令腳本權(quán)限不夠

jenkins使用的用戶一般默認(rèn)是jenkins,有兩種解決方案
1、將jenkins改成root 一般配置文件是在這個(gè)目錄下 /etc/sysconfig/jenkins
2、賦予jenkins用戶權(quán)限
編輯 /etc/sudoers 文件,在文件最下為 Jenkins 用戶賦予無(wú)密碼執(zhí)行 sudo 的權(quán)限
jenkins ALL=(ALL) NOPASSWD:ALL

http://www.risenshineclean.com/news/42213.html

相關(guān)文章:

  • 中國(guó)做的最好的網(wǎng)站有哪些百度競(jìng)價(jià)托管公司
  • 西安那里做網(wǎng)站wordpress外貿(mào)獨(dú)立站
  • 百度網(wǎng)站上傳平面設(shè)計(jì)網(wǎng)站
  • web做網(wǎng)站騰訊域名注冊(cè)官網(wǎng)
  • 網(wǎng)站建設(shè)的自查整改報(bào)告沈陽(yáng)seo團(tuán)隊(duì)
  • 重慶網(wǎng)站建設(shè)價(jià)格網(wǎng)壇最新排名
  • 網(wǎng)站推廣一般怎么做短視頻運(yùn)營(yíng)是做什么的
  • 天津的網(wǎng)站建設(shè)公司鎮(zhèn)江網(wǎng)站制作公司
  • 博彩外圍網(wǎng)站怎么做網(wǎng)站服務(wù)器多少錢一年
  • 做網(wǎng)站只有搜網(wǎng)址嗎搜索量排名
  • 帝國(guó)cms如何做微網(wǎng)站免費(fèi)seo網(wǎng)站診斷免費(fèi)
  • wordpress 捐贈(zèng)葉濤網(wǎng)站推廣優(yōu)化
  • 自己dreamweaver做的網(wǎng)站怎么掛seo內(nèi)部?jī)?yōu)化方案
  • 工業(yè)和信息化部人才交流中心長(zhǎng)沙百度快速排名優(yōu)化
  • 應(yīng)聘網(wǎng)站建設(shè)工程師semifinal
  • 軟件商城app下載安裝seo的優(yōu)化策略有哪些
  • 廣州 網(wǎng)站制搜索引擎營(yíng)銷流程是什么?
  • 網(wǎng)站建設(shè)需要服務(wù)器支持 嗎seo發(fā)貼軟件
  • 茂名網(wǎng)站建設(shè)技術(shù)托管搜索引擎優(yōu)化的意思
  • 網(wǎng)站建設(shè)公司 南京杭州優(yōu)化外包哪里好
  • 網(wǎng)站自己推廣怎么做友情鏈接平臺(tái)哪個(gè)好
  • 網(wǎng)站建設(shè)辶金手指排名十一seo教程seo優(yōu)化
  • 網(wǎng)站圖片分辨率福州百度分公司
  • 佛山新網(wǎng)站制作特色網(wǎng)站推廣排名
  • 沒(méi)有網(wǎng)站怎么做淘客視頻號(hào)怎么推廣流量
  • 臨沂做網(wǎng)站電話信息發(fā)布平臺(tái)推廣有哪些
  • 編程課有必要學(xué)嗎丈哥seo博客工具
  • 武漢網(wǎng)站設(shè)計(jì)站建設(shè)seo課程
  • 政務(wù)網(wǎng)站的建設(shè)時(shí)期的概述品牌策劃公司哪家好
  • 多語(yǔ)言網(wǎng)站實(shí)現(xiàn)微信引流推廣怎么做