Jenkins 自動部署 Net Core


目的:實現把Git測試分支中的代碼發布到Linux測試環境

1、安裝Jenkins。

首先需要找一台服務器安裝Jenkins,我用的是Linux。啟動后直接用IP+端口號訪問就可以看到啟動動的Jenkisn.

Tips:關於Jenkins的配置,為了方便我是用Linux的root用戶登錄的,具體配請自行更改。

 1 #安裝java環境(Jenkins需要這個java環境)
 2 sudo yum install java
 3 java -version
 4 
 5 # 安裝Git
 6 sudo yum install git
 7 git --version 
 8 
 9 #安裝Jenkins
10 sudo wget -O /etc/yum.repos.d/jenkins.repo http://jenkins-ci.org/redhat/jenkins.repo
11 sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
12 yum install jenkins
13 
14 #修改jenkins 的配置信息
15 vi /etc/sysconfig/jenkins
16 
17 #修改配置
18 JENKINS_USER="root"
20 JENKINS_PORT:"8080"
21 
22 #修改目錄權限
23  [root@localhost sysconfig]# chown -R root:root /var/lib/jenkins
24 [root@localhost sysconfig]# chown -R root:root /var/cache/jenkins
25 [root@localhost sysconfig]# chown -R root:root /var/log/jenkins
26 
27 #啟動Jenkins
28 systemctl start jenkins

 

2、配置Jenkins

實現目的:當前的Jenkins 是安裝在192.168.11.80上,需要Jenkins把Git 上拉取的代碼發布到 192.168.0.138上。此時138上已經配置好了supervisorctl。也就是說Jenkisn和web服務器沒在一個服務器上。

(1)Jenkins安裝遠程插件(Publish Over SSH) 系統管理->插件管理

 

 

 (2)配置遠程服務器鏈接(此處用的是密碼用戶用的rooot)系統管理->系統配置

 

 

3、新建一個Jenkins任務(或復制一個已有的任務)

 

 

 (1)配置Git

 

 

 

 

 

 

 

 構建就可以了

 

 

 

如你的web服務器是用Docker發布的,Jenkins的執行Shell,你可以參考一下

echo "獲取當前容器是否存在-----------------------------------------------------------------"
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 "存在停止了的 然后直接刪除-----------開始------------------"
          docker rm $alpha1
          echo "存在停止了的 然后直接刪除-----------完成------------------"
        fi
       done
    else
    echo "存在-停止運行 然后刪除----------------------開始-----------------"
    docker stop $alpha
    docker rm $alpha
     echo "存在-停止運行 然后刪除---------------------完成------------------"
    fi
done

echo "獲取當前鏡像是否存在-----------------------------------------------------------------"
dockerlist=$(docker images resapiimage:latest -q)
for alpha2 in "$dockerlist";do
  if [ "$alpha2" == "" ];then
     echo "不存在指定鏡像-------------------------------------------------" 
  else
       echo "存在當前指定的鏡像 刪除鏡像--------------開始-----------------------------------"
      docker rmi $alpha2
     echo "存在當前指定的鏡像 刪除鏡像--------------完成-----------------------------------"
  fi
done

echo "開始輸入工作目錄-----------------------------------------------------------------"
echo $WORKSPACE

echo "轉到項目工程目錄-----------------------------------------------------------------"
cd $WORKSPACE/AoJi.Res/


echo "重新生成------------------------------------開始-----------------------------"
dotnet build
echo "重新生成------------------------------------完成-----------------------------"

echo "項目發布-------------------------------------開始----------------------------"
dotnet publish --output /data/www/resapi.aojiedu.com/
echo "項目發布-------------------------------------完成----------------------------"

echo "轉到項目發布目錄-----------------------------------------------------------------"
cd  /data/www/resapi.aojiedu.com/

echo "構建Docker鏡像-------------------------------開始----------------------------------"
echo pwd
docker build -t resapiimage .
echo "構建Docker鏡像-------------------------------完成----------------------------------"

echo "運行Docker容器-------------------------------------開始----------------------------"
docker run  --name=resapi -p 5001:5001 -d resapiimage
echo "運行Docker容器------------------------------------完成-----------------------------"

 

 

 

 

 

 

 

 

 

 


免責聲明!

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



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