日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Docker 搭建 Jenkins 流水线项目配置

發(fā)布時(shí)間:2023/12/8 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker 搭建 Jenkins 流水线项目配置 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本篇介紹 Jenkins 流水線(xiàn)項(xiàng)目的配置及流水線(xiàn)腳本語(yǔ)法規(guī)則。至于 Jenkins 的安裝及其它配置,我之前寫(xiě)過(guò)一篇文章可以查看。 https://www.yuque.com/testpu/pro/bo7lzr ,以下,演示也是基于這篇文章中介紹的 Jenkins 配置為準(zhǔn)。

1、流水線(xiàn)項(xiàng)目配置

安裝完流水線(xiàn)的插件可以,創(chuàng)建項(xiàng)目時(shí)會(huì)出現(xiàn)對(duì)應(yīng)的流水線(xiàn)項(xiàng)目選項(xiàng),如下:

輸入名稱(chēng),api_pipeline_dev 選中,流水線(xiàn),即可創(chuàng)建對(duì)應(yīng)項(xiàng)目。

至于,其它配置,如,git拉取代碼,jdk,maven、遠(yuǎn)程服務(wù)器等,查看我的上一篇文章,這里只介紹 Jenkins 流水線(xiàn)項(xiàng)目的創(chuàng)建及流水線(xiàn)腳本。

2、流水線(xiàn) api-jar包打包腳本

下面是 api jar包的構(gòu)建及部署腳本。

pipeline {agent anystages {stage('拉取代碼') {steps {checkout([$class: 'GitSCM', branches: [[name: '*/dev']], extensions: [], userRemoteConfigs: [[credentialsId: '32d07987c09', url: 'http://192.8.8.8:8080/git/api']]])echo '拉取代碼成功'}}stage('編譯構(gòu)建') {steps {echo "${env.WORKSPACE}" //用于打印 Jenkins 工作目錄,沒(méi)啥實(shí)質(zhì)用處sh 'mvn -f spomlile/pom.xml clean install'echo '編譯成功'}}//stage('項(xiàng)目部署') {//Jenkins 的ssh插件來(lái)實(shí)現(xiàn)部署jar包,就是這里配置后生成腳本 https://www.yuque.com/testpu/pro/lsigkl#xidkx//steps {//sshPublisher failOnError: true, publishers: [sshPublisherDesc(configName: '211.4docker', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/api/spomlile-all/', remoteDirectorySDF: false, removePrefix: 'spomlile/spomlile-all/target', sourceFiles: 'spomlile/spomlile-all/target/spomlile-all-0.1.0-exec.jar')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)]//echo '項(xiàng)目部署成功'//}//} stage('項(xiàng)目部署') {//執(zhí)行遠(yuǎn)程服務(wù)器上的腳本來(lái)實(shí)現(xiàn)部署steps {sh '''ssh root@192.168.211.4 "nohup sh /data/api/scp_from_211.3_api_pipeline.sh & sleep 1"sleep 3'''}} } }

2.1腳本說(shuō)明:

1、編譯構(gòu)建腳本中這個(gè)命令非常關(guān)鍵,如果你的項(xiàng)目工程存在多個(gè)微服務(wù),那么你從 Git 倉(cāng)庫(kù)拉取下來(lái)的代碼多了一層目錄(根目錄中不會(huì)有 pom.xml 這個(gè)文件),此時(shí)必須要指定這個(gè)文件的位置,否則 maven 識(shí)別不了,哈哈哈哈。用如下的方式指定該文件的位置,比如:

# 指定pom.xml文件的位置,基于Jenkins工作目錄的相對(duì)目錄 'mvn -f litemall/pom.xml clean install'

2、部署腳本有兩種實(shí)現(xiàn)方法,一種是直接用 Jenkins 的ssh插件,傳輸 jar 到遠(yuǎn)程服務(wù)器(上面腳本注釋的部分),另外一種是在遠(yuǎn)程服務(wù)器上寫(xiě)好部署腳本,用 Jenkins 執(zhí)行遠(yuǎn)程服務(wù)器上的部署腳本,按自己項(xiàng)目需求二選一。

遠(yuǎn)程服務(wù)器上的部署腳本如下。

#!/bin/bashhost='192.8.8.8' name='booksmpil-all-5.1.0-exec.jar' dir='booksmpil' DT=`date +%Y%m%d%H%M`if ps -ef|grep $name |grep -v "grep" &>/dev/null; thenjava_pid=`ps -ef | grep $name | grep -v "grep" | awk '{print $2}'`echo "kill -9 的pid:" $java_pidkill -9 ${java_pid} fi echo '【開(kāi)始暫停jar包】'if ps -ef|grep $name |grep -v "grep" &>/dev/null; thenecho "Tomcat stop failed.Please check the problem."exit 5 ficd /data/api cmd='mv '$dir' bk/'$dir'_'$DT echo $cmd eval $cmd echo '【項(xiàng)目備份完成】'sleep 3if [ ! -d booksmpil ]; thenmkdir $dir fisleep 3scp -rq root@$host:/data/jenkins/jenkins_home/workspace/api_pipeline_dev/booksmpil/booksmpil-all/target/$name /data/api/$dir sleep 2 echo '【項(xiàng)目部署完成】'sleep 2cd /data/api/$dir cp /data/api/confbk/appconifg-all.yml ./appconifg-core.yml echo '【備份配置完成】'source /etc/profile nohup java -jar $name >/dev/null & if ps -ef|grep $name |grep -v "grep" &>/dev/null; thenecho '【啟動(dòng)jar包】' fiNR=`ps -ef | grep "${name}" | grep -v grep | wc -l` if [ "$NR" -eq 1 ] thenecho '【啟動(dòng)成功】' elseecho '【啟動(dòng)失敗】' fi

3、流水線(xiàn)腳本語(yǔ)法生成

Jenkins 自帶流水線(xiàn)語(yǔ)法生成插件,入口項(xiàng)目配置-流水線(xiàn)-流水線(xiàn)語(yǔ)法

3.1Git拉取代碼腳本生成

選中紅框中的步驟,然后依次填寫(xiě)Git倉(cāng)庫(kù)的信息,點(diǎn)擊 ‘生成流水線(xiàn)腳本’即可。

3.2執(zhí)行 shell 腳本生成

選中紅框中的步驟,然后寫(xiě)你要執(zhí)行的 shell 腳本,點(diǎn)擊生成即可。

3.3向遠(yuǎn)程服務(wù)器發(fā)布jar包腳本生成

依次填寫(xiě)遠(yuǎn)程服務(wù)器的配置、遠(yuǎn)程目錄、源文件地址等信息后,點(diǎn)擊生成。

還有很多流水線(xiàn)腳本生成語(yǔ)法,按需生成。


讀后感

來(lái)這里找我交流

  • QQ群:330374464
  • 公眾號(hào):軟件測(cè)試資源站(ID:testpu)
  • 阿里語(yǔ)雀:https://www.yuque.com/testpu/pro

總結(jié)

以上是生活随笔為你收集整理的Docker 搭建 Jenkins 流水线项目配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。