.netcore 3全自動化發布部署Jenkins+GIT


1.新建項目提交到Git。

  這里的git項目可以用GitLab也可以各大平台提供的,比如碼雲和coding。或者自己搭建個Git服務器。用vs2019新建個webapi項目。然后提交到git服務器。這里我用的是碼雲

 

 

 2.安裝並運行Jenkins

  這里我的是centos7,前提是需要安裝好java的jdk 1.8+

Jenkins官網最新穩定版: https://pkg.jenkins.io/redhat-stable/

windows下載:https://jenkins.io/download/  

1)下載

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

(2)導入秘鑰

sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

(3)安裝

yum install jenkins

(4)配置端口

Jenkins的默認端口是8080,如果要修改的話使用以下命令,我這里修改為8070:

vim /etc/sysconfig/jenkins

jenkins_port:8070

(5)啟動Jenkins

nohup  java -jar /usr/lib/jenkins/jenkins.war --httpPort=8070 &

然后通過瀏覽器IP:Port查看Jenkins界面進行配置,首先需要輸入系統自動生產的密碼:

 

 

 復制圖片上的路徑,輸入命令: cat 圖片上的路徑,如:cat /var/lib/jenkins/secrets/initialAdminPassword,復制密碼粘貼確認就可以,之后進入Jenkins選擇插件界面:

 

 選擇安裝默認插件。

3.安裝.Net Core SDK 3

推薦按照官方地址操作https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-package-manager-centos7

sudo yum -y install dotnet-sdk-3.1

安裝完成之后輸入命令 : dotnet --version

驗證安裝是否安裝成功

4.配置Jenkins

(1)新建一個自由風格的軟件項目

 

 (2)填寫源代碼Git地址,用於Jenkins拉取代碼:

 

 添加添加可以添加管理倉庫的用戶和密碼,用戶拉取源代碼。

可是設置定制構建執行代替手動執行,這里的設置是每5分鍾發布一次,其實沒必要,手動點構建更靈活。

 

 

構建環境部分,可以指定發布的一些選項,就是發布之前刪除之前的文件等

 

構建。這里就是把文件獲取到最新之后要執行的項目的編譯,發布和啟動網站。

 

 

 執行的shell腳本

kill -9 `lsof -ti:5000`
dotnet restore
dotnet build
dotnet publish
BUILD_ID=DONTKILLME
nohup dotnet ${WORKSPACE}/bin/Debug/netcoreapp3.1/publish/Apitest.dll &
View Code

其中shell里面的第一行,第一次構建的時候不需要,因為此時網站還沒發布啟動,不存在占用5000端口的程序,如果執行的話會造成shell中斷。構建不成功。

BUILD_ID=DONTKILLME 這句話的意思是Jenkins啟動之后不要kill掉網站的進程。最開始沒有加這個導致構建之后,看着網站明明啟動了就是訪問不了的假象。

在dotnet 之前加nohup的意思是不占用終端,在后台進程的形式啟動網站,避免一直占用終端,造成構建占用超時。

由於網站啟動后會占用5000端口,再次發布時會造成端口占用,網站啟動不了,所以有了第一句 kill -9 `lsof -ti:5000` 每次發布時解除端口占用。 

 這樣構建過程就完成了。以后每次有修改,只要把代碼提交到git服務器,點擊構建就能實現代碼的自動拉取同步,程序的自動發布,網站的啟動。

輸入地址 http:localhost:5000 就能直接訪問,當然也可以運用nginx反向代理進行綁定訪問。

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM