Jenkins自動(dòng)部署Net Core過(guò)程圖解
目的:實(shí)現(xiàn)把Git測(cè)試分支中的代碼發(fā)布到Linux測(cè)試環(huán)境
1、安裝Jenkins。
首先需要找一臺(tái)服務(wù)器安裝Jenkins,我用的是Linux。啟動(dòng)后直接用IP+端口號(hào)訪問(wèn)就可以看到啟動(dòng)動(dòng)的Jenkisn.
Tips:關(guān)于Jenkins的配置,為了方便我是用Linux的root用戶(hù)登錄的,具體配請(qǐng)自行更改。
#安裝java環(huán)境(Jenkins需要這個(gè)java環(huán)境) sudo yum install java java -version # 安裝Git sudo yum install git git --version #安裝Jenkins sudo wget -O /etc/yum.repos.d/jenkins.repo http://jenkins-ci.org/redhat/jenkins.repo sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key yum install jenkins #修改jenkins 的配置信息 vi /etc/sysconfig/jenkins #修改配置 JENKINS_USER="root" JENKINS_PORT:"8080" #修改目錄權(quán)限 [root@localhost sysconfig]# chown -R root:root /var/lib/jenkins [root@localhost sysconfig]# chown -R root:root /var/cache/jenkins [root@localhost sysconfig]# chown -R root:root /var/log/jenkins #啟動(dòng)Jenkins systemctl start jenkins
2、配置Jenkins
實(shí)現(xiàn)目的:當(dāng)前的Jenkins 是安裝在192.168.11.80上,需要Jenkins把Git 上拉取的代碼發(fā)布到 192.168.0.138上。此時(shí)138上已經(jīng)配置好了supervisorctl。也就是說(shuō)Jenkisn和web服務(wù)器沒(méi)在一個(gè)服務(wù)器上。
(1)Jenkins安裝遠(yuǎn)程插件(Publish Over SSH) 系統(tǒng)管理->插件管理
(2)配置遠(yuǎn)程服務(wù)器鏈接(此處用的是密碼用戶(hù)用的rooot)系統(tǒng)管理->系統(tǒng)配置
3、新建一個(gè)Jenkins任務(wù)(或復(fù)制一個(gè)已有的任務(wù))
(1)配置Git
構(gòu)建就可以了
如你的web服務(wù)器是用Docker發(fā)布的,Jenkins的執(zhí)行Shell,你可以參考一下
echo "獲取當(dāng)前容器是否存在-----------------------------------------------------------------" containerps=$(docker ps -f name=resapi -q) containerstop=$(docker ps -a -f name=resapi -q) for alpha in "$containerps";do if [ "$alpha" == "" ];then echo "檢查是否存在停止的容器-------------------------------------------------" for alpha1 in "$containerstop";do if [ "$alpha1" == "" ];then echo "不存指定容器-----------------------------------" else echo "存在停止了的 然后直接刪除-----------開(kāi)始------------------" docker rm $alpha1 echo "存在停止了的 然后直接刪除-----------完成------------------" fi done else echo "存在-停止運(yùn)行 然后刪除----------------------開(kāi)始-----------------" docker stop $alpha docker rm $alpha echo "存在-停止運(yùn)行 然后刪除---------------------完成------------------" fi done echo "獲取當(dāng)前鏡像是否存在-----------------------------------------------------------------" dockerlist=$(docker images resapiimage:latest -q) for alpha2 in "$dockerlist";do if [ "$alpha2" == "" ];then echo "不存在指定鏡像-------------------------------------------------" else echo "存在當(dāng)前指定的鏡像 刪除鏡像--------------開(kāi)始-----------------------------------" docker rmi $alpha2 echo "存在當(dāng)前指定的鏡像 刪除鏡像--------------完成-----------------------------------" fi done echo "開(kāi)始輸入工作目錄-----------------------------------------------------------------" echo $WORKSPACE echo "轉(zhuǎn)到項(xiàng)目工程目錄-----------------------------------------------------------------" cd $WORKSPACE/AoJi.Res/ echo "重新生成------------------------------------開(kāi)始-----------------------------" dotnet build echo "重新生成------------------------------------完成-----------------------------" echo "項(xiàng)目發(fā)布-------------------------------------開(kāi)始----------------------------" dotnet publish --output /data/www/resapi.aojiedu.com/ echo "項(xiàng)目發(fā)布-------------------------------------完成----------------------------" echo "轉(zhuǎn)到項(xiàng)目發(fā)布目錄-----------------------------------------------------------------" cd /data/www/resapi.aojiedu.com/ echo "構(gòu)建Docker鏡像-------------------------------開(kāi)始----------------------------------" echo pwd docker build -t resapiimage . echo "構(gòu)建Docker鏡像-------------------------------完成----------------------------------" echo "運(yùn)行Docker容器-------------------------------------開(kāi)始----------------------------" docker run --name=resapi -p 5001:5001 -d resapiimage echo "運(yùn)行Docker容器------------------------------------完成-----------------------------"
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 基于Jenkins搭建.NET Core持續(xù)集成環(huán)境過(guò)程圖解
- Asp.net Core Jenkins Docker實(shí)現(xiàn)一鍵化部署的實(shí)現(xiàn)
- .Net Core自動(dòng)化部署之利用docker版jenkins部署dotnetcore應(yīng)用的方法
- 如何利用Jenkins + TFS為.Net Core實(shí)現(xiàn)持續(xù)集成/部署詳解
- Centos7+Docker+Jenkins+ASP.NET Core 2.0自動(dòng)化發(fā)布與部署的實(shí)現(xiàn)
- ASP.NET Core+Docker+Jenkins實(shí)現(xiàn)持續(xù)集成的完整實(shí)例
相關(guān)文章
調(diào)用Mybatis?plus中的saveBatch方法報(bào)找不到表的問(wèn)題
在用Mybatis plus開(kāi)發(fā)的項(xiàng)目中,用自帶的API批量保存的方法saveBatch操作時(shí),發(fā)現(xiàn)報(bào)沒(méi)有找到表的錯(cuò)誤,本文就來(lái)詳細(xì)的介紹一下解決方法,感興趣的可以了解一下2024-03-03Hibernate中Session.get()方法和load()方法的詳細(xì)比較
今天小編就為大家分享一篇關(guān)于Hibernate中Session.get()方法和load()方法的詳細(xì)比較,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03Java項(xiàng)目如何引入日志生成器及其日志分級(jí)
這篇文章主要介紹了Java項(xiàng)目引入日志生成器及其日志分級(jí),本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12關(guān)于jdk環(huán)境變量配置以及javac不是內(nèi)部或外部命令的解決
這篇文章主要介紹了關(guān)于jdk環(huán)境變量配置以及javac不是內(nèi)部或外部命令的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01maven中snapshot相關(guān)jar無(wú)法拉取問(wèn)題及解決方案(常用方案)
Maven中的SNAPSHOT版本是指正在開(kāi)發(fā)中的版本,這些版本可能會(huì)頻繁地更新,在使用Maven構(gòu)建項(xiàng)目時(shí),有時(shí)會(huì)遇到無(wú)法拉取SNAPSHOT相關(guān)jar的問(wèn)題,下面給大家分享maven中snapshot相關(guān)jar無(wú)法拉取問(wèn)題及解決方案,感興趣的朋友一起看看吧2024-06-06Spring Boot mybatis-config 和 log4j 輸出sql 日志的方式
這篇文章主要介紹了Spring Boot mybatis-config 和 log4j 輸出sql 日志的方式,本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-07-07