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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux下Jenkins与GitHub自动构建NetCore与部署

發(fā)布時間:2023/12/4 linux 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux下Jenkins与GitHub自动构建NetCore与部署 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

今天我們來談談NetCore在Linux底下的持續(xù)集成與部署。NetCore我就不多介紹了,持續(xù)集成用的是Jenkins,源代碼管理器用的是GitHub。我們就跟著博文往下走吧。

1.Linux環(huán)境

在進行自動構建之前,我們需要一個可以運行的Linux環(huán)境,并保證環(huán)境安裝了NetCoreSDK,Git,Jenkins等環(huán)境,那在這邊就不多說環(huán)境的安裝,提供相對應的安裝教程,大家按照安裝就可以,不過對Jenkins的安裝,我會多啰嗦一句。

啰嗦的那一句
我在安裝Jenkins成功的時候進入網(wǎng)頁,網(wǎng)頁會一直保持在下面圖這個狀態(tài),沒辦法進入到開始頁面,那解決辦法是:

Jenkins等待

  • 進入到Jenkins的工作目錄/var/lib/jenkins/修改hudson.model.UpdateCenter.xml文件

  • 將http://updates.jenkins-ci.org/update-center.json修改為http://mirror.xmission.com/jenkins/updates/update-center.json

  • 重啟下Jenkins

  • 2.Jenkins自動構建

    • 定時構建
  • chown jenkins /ftpfile -R??


  • chmod 777 /ftpfile -R?


  • dotnet restore?


  • dotnet build?


  • dotnet publish?


  • 創(chuàng)建Jenkins項目

  • 配置好自定義工作目錄

  • 填寫源代碼路徑

  • 配置定時任務

    字段*****
    含義分鐘小時日期月份星期
    取值范圍0-590-231-311-120-7






    示例




    每隔15分鐘執(zhí)行一次H/15****
    每隔2個小時執(zhí)行一次HH/2***
    每隔3天執(zhí)行一次HHH/3**
    每隔3天執(zhí)行一次(每月的1-15號)HH1-15/3**
    每周1,3,5執(zhí)行一次HH**1,3,5






    規(guī)則




    指定時間范圍a-b



    指定時間間隔/



    指定變量取值a,b,c



  • 配置構建命令

  • 查看構建,并運行NetCore
    注意:
    因為你建立的自定義工作目錄,對于"jenkins"沒有讀寫權限,所以可能就會導致構建失敗,執(zhí)行下面命令,給Jenkins賦予讀寫權限。

  • 觸發(fā)構建
  • 提交代碼

  • 查看Jenkins

  • 切換成觸發(fā)構建

  • 使用密文模式,并添加綁定,選擇剛才添加的憑據(jù)

  • 添加GitHub服務器

    2.添加GitHub的憑據(jù),也就我們剛才拿到得accessToken

  • 進入Settings頁面,找到左邊列表的Developer settings,點擊進入,可以看到如下:

  • 點擊生成,然后勾選,,保存即可,就可以獲得token,順便說下,token要記下來,不然關閉頁面就看不到了。

  • 在項目設置中找到webhook

  • 設置Jenkins的hook地址到剛才添加的webhook中,

    Jenkins的hook地址為:http://你的地址(端口)/github-webhook,當然這個地址應該是外網(wǎng)可以訪問的

  • 配置GitHub
    針對我們的項目,我們要在自己的項目內(nèi)添加webhook,并配置好webhook的地址。

  • Personal access tokens
    對于任何第三方訪問GitHub的項目,是需要授權的,Jenkins也是一樣的,所以我們需要先獲取一個accessToken

  • Jenkins配置
    上面的配置完成之后,我們需要返回Jenkins,進行再次設置。為Jenkins添加GitHub服務器。

  • Jenkins任務配置
    因為我們已經(jīng)將觸發(fā)構建的前置步驟都做完了,那接著我們就要去修改之前的定時構建的配置了

  • 修改代碼,上傳GitHub
    終于我們將之前的定時構建改成了觸發(fā)構建,也就是我們每次Push代碼都會觸發(fā)構建,接下來我們試下。

  • 3.NetCore部署

    終于的終于,我們把構建這個步驟做好了,那么接下來當然就是要部署我們網(wǎng)站咯。

    • 運行NetCore
      運行NetCore最簡單了,我們只需要在發(fā)布后的目錄運行dotnet ***.dll就可以了,當然,前提,你要裝CoreSDK。

    • nginx托管
      雖然說上面那樣已經(jīng)運行起來,但是由于我們的環(huán)境在騰旭云上,要訪問可以用nginx進行方向代理下,下面就簡單貼下配置就可以了。

  • server {?


  • listen?80;?


  • location / {?


  • proxy_pass http:?


  • proxy_http_version?1.1;?


  • proxy_set_header Upgrade $http_upgrade;?


  • proxy_set_header Connection keep-alive;?


  • proxy_set_header Host $host;?


  • proxy_cache_bypass $http_upgrade;?


  • }?


  • }?


  • 守護進程
    我們已經(jīng)知道要運行Core,需要使用命令在控制臺運行,但是一旦退出了,Core自然就退出了,所以我們在Linux底下需要一個類似IIS的,來托管我們運行Core的進程,守護進程,讓其在后臺運行,自動重啟等等功能,這個就是supervisor

    supervisors是C/S架構的進程控制系統(tǒng),可使用戶在類UNIX系統(tǒng)中監(jiān)控、管理進程。常用于管理與某個用戶或項目相關的進程。

    安裝教程可以參考開始表格supervisor的鏈接,同樣怎么對于怎么對Core進行守護進程,文章內(nèi)也有講,一步一步按照教程來就可以了。不過我這邊還是會講下我在使用supervisor中遇到的坑。

  • 一開始,我百度了挺多的,發(fā)現(xiàn)百度中的文章,對于supervisor的日志文件,很多都說在/etc/log/supervisor/supervisord.log這個文件內(nèi),但其實我去找的時候,發(fā)現(xiàn)并沒有,查看配置文檔,發(fā)現(xiàn)默認是在tmp中,我不知道是centeros 的版本問題,還是supervisor版本問題。

  • 還有一個就是,在根據(jù)教程走完,配置后,要進行啟動時,可能會出現(xiàn)Unlinking stale socket /tmp/supervisor.sock?這個錯誤,我們只需要解鎖下就可以了unlink /tmp/supervisor.sock

  • 4.總結一下

    該篇文章簡單介紹了下Linux下Jenkins與GitHub自動構建NetCore與部署,很多細點我可能沒講出來,我把大大的教程貼出來,按照教程走起,就可以了,這也是我實踐過了的,肯定可以用的,非常感謝大大們,然后呢,我也想拋磚引玉下,在我Jenkins構建時有兩個問題,不知道誰可以幫我解答下。

  • 比如我們的解決方案文件.sln并沒有在git項目的根目錄下,我們要指定需要構建的解決方案呢?

  • 還有一個就是,在命令dotnet publish我們怎么指定發(fā)布到另一個文件夾內(nèi)呢,我知道有個參數(shù)-o|--output <OUTPUT_DIRECTORY>,我試了下,發(fā)現(xiàn)不行?dotnet publish -o /ftpfile/netCore/netCoreJenkins/JenkinsNetCore,會有以下的錯誤。

  • 最后的最后,我的下一篇文章是《Linux下Jenkins與GitHub自動構建Node項目(Vue)》,期待0.5下吧。

    原文地址:https://www.cnblogs.com/xuhuale/p/11062293.html

    總結

    以上是生活随笔為你收集整理的Linux下Jenkins与GitHub自动构建NetCore与部署的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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