最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux下使用Jenkins自動(dòng)化構(gòu)建.NET?Core應(yīng)用

 更新時(shí)間:2022年04月02日 08:36:27   作者:癡者工良  
這篇文章介紹了Linux下使用Jenkins自動(dòng)化構(gòu)建.NET?Core應(yīng)用的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

部署 Jenkins

請(qǐng)?zhí)崆霸?Linux 上安裝 Docker,在 Linux 中,我們使用 Docker 啟動(dòng) Jenkins,這樣可以避免手動(dòng)安裝大量依賴以及污染本地環(huán)境,也便于快速啟動(dòng)和故障恢復(fù)。

安裝 Docker 完畢后,使用 docker version 檢查 Docker 版本,Docker 版本不能為 1.x、3.x 這種版本,請(qǐng)升級(jí)到 18.x 以上版本。一般在 Ubuntu 系統(tǒng)中,下載安裝的是最新版本,但是在 Centos 中因?yàn)槟J(rèn)鏡像源中的版本比較舊, 安裝 Doker 版本較低,需要手動(dòng)添加新版本的鏡像源再升級(jí)。

請(qǐng)參考:http://m.fzitv.net/article/243104.htm

因?yàn)闀?huì)使用到容器提供環(huán)境,以及使用 Docker 打包 .NET Core 程序?yàn)?Docker 鏡像,所以需要在 Jenkins 容器中映射 Docker 的 .sock 文件,以便在容器中,還能使用 Docker 命令。

在宿主機(jī)中創(chuàng)建 /var/jenkins_home 目錄,用于備份 Jenkins 中的數(shù)據(jù)。

在 Linux 中使用 Docker 啟動(dòng) Jenkins ,其命令如下:

docker run \
  -u root \
  -itd \
  -p 8080:8080 \
  -p 50000:50000 \
  -v /var/jenkins_home:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  jenkinsci/blueocean

啟動(dòng)后,使用 docker logs {容器ID} 查看日志獲取 Jenkins 登錄密碼,其密碼是一串哈希字符串,例如:1abc12445adcf。

最后打開 8080 端口,即可訪問 Jenkins。

安裝插件

登錄 Jenkins 后,會(huì)提示安裝推薦的插件,請(qǐng)根據(jù)提示安裝推薦的插件,推薦安裝的插件列表如下:

Folders Plugin
OWASP Markup Formatter Plugin
Build Timeout
Credentials Binding Plugin
Timestamper
Workspace Cleanup
Ant
Gradle
Pipeline
GitHub Branch Source Plugin
Pipeline: GitHub Groovy Libraries
Pipeline: Stage View
Git plugin
SSH Build Agents
Matrix Authorization Strategy Plugin
PAM Authentication
LDAP
Email Extension
Mailer Plugin
Localization: Chinese (Simplified)

另外為了提供容器打包支持等,需要另外手工安裝以下插件。

# 提供 Docker 支持(必裝)
docker
Docker Pipeline
docker-build-step

# 可視化設(shè)計(jì)流水線腳本的工具(必裝)
Blue Ocean

# 提供對(duì) gitlab 支持,如果不使用可以不安裝
gitlab

# 提供 Git 參數(shù)化和鉤子觸發(fā)構(gòu)建支持,不需要可以不安裝
Git Parameter
Generic Webhook Trigger

拉取鏡像

這里介紹一下我們后面要用到的兩個(gè)鏡像。

拉取一個(gè) .NET Core SDK,每次啟動(dòng)流水線時(shí),都會(huì)啟動(dòng)一個(gè) .NET Core SDK 容器,為我們提供構(gòu)編譯、發(fā)布 .NET Core 程序的環(huán)境。

docker pull mcr.microsoft.com/dotnet/sdk:3.1

拉取一個(gè) ASP.NET Core Runtime,用于制作應(yīng)用鏡像的基礎(chǔ)鏡像。

docker pull mcr.microsoft.com/dotnet/aspnet:3.1

鏡像列表:

mcr.microsoft.com/dotnet/aspnet   3.1          ac199e8d6dff   2 weeks ago   208MB
mcr.microsoft.com/dotnet/sdk      3.1          82e2a34647f0   2 weeks ago   710MB

制作 Jenkinsfile 腳本

筆者貼心地給各位同學(xué)準(zhǔn)備了 Demo 項(xiàng)目,請(qǐng)到 https://github.com/whuanle/DotNetCoreJenkinsDemo 倉庫,fork 到你的倉庫,后續(xù)我們使用這個(gè) ASP.NET Core 的 Demo 程序?qū)嵺`流程。

在項(xiàng)目文件中,可以找到一個(gè) Jenkinsfile 文件,此文件為我們定義流水線的步驟。

我們看一下簡(jiǎn)單的 Jenkinsfile 模板:

pipeline {
    stages {
        stage('Build') {
            steps {
                echo 'Building..'
            }
        }
        stage('Test') {
            steps {
                echo 'Testing..'
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying....'
            }
        }
    }
}

stages 中,定義流水線的階段,在模板中,一個(gè)定義了三個(gè)階段,分別是 Build、Test、Deploy。

每個(gè)階段都可以定義多個(gè)步驟(steps),每個(gè)步驟中都可以執(zhí)行多個(gè)不同類型的 step。

    stage('Test') {
        steps {
            echo 'Testing..'
        }
    }

demo 中的 Jenkinsfile 比較簡(jiǎn)單,我們可以找個(gè) Publish 階段的內(nèi)容看一下:

        stage('Publish') { 
            steps {
                sh 'dotnet publish src/WebDemo -c Release'
            }
        }

其實(shí)很簡(jiǎn)單,每個(gè)步驟執(zhí)行 shell 命令就行,我們可以使用 sh '...' 表示此步驟要執(zhí)行的 shell 命令。

接著我們看一下 Jenkinsfile 開頭的兩部分內(nèi)容。

    // 全局環(huán)境變量
    environment {
        IMAGENAME     = 'webdemo'       // 鏡像名稱
        IMAGETAG      = '1.0.0'         // 鏡像標(biāo)簽
        APPPORT       = '8089'          // 應(yīng)用占用的端口
        APPDIR        = '/opt/app'      // 應(yīng)用工作的目錄
    }

    agent {
        docker {
            image 'mcr.microsoft.com/dotnet/sdk:3.1' 
            args '-v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker'
        }
    }

environment 中,可以定義此次構(gòu)建過程的環(huán)境變量。

agent 則是節(jié)點(diǎn)選擇器,可以選擇在何種環(huán)境下啟動(dòng)流水線,有 node、docker 等類型。

構(gòu)建流水線

登錄到 Jenkins 網(wǎng)頁后臺(tái),在左側(cè)菜單欄中點(diǎn)擊 New Item,開始創(chuàng)建流水線。

Jenkins 有多種流水線風(fēng)格,還可以通過添加插件,來加入更多的流水線類型,我們主要了解 Freestyle project 、Pipeline、Multibranch Pipeline 即可。

  • Freestyle project

    Freestyle project流水線 使用上比較自由,不需要對(duì)項(xiàng)目做更改即可創(chuàng)建流水線,可以添加很多選擇、配置。如果流程需要變化,改動(dòng)比較麻煩。

  • Pineline、Multibranch Pipeline

    他們都可以同時(shí)處理多個(gè)分支,這兩種都是依賴于項(xiàng)目中的 Jenkinsfile 文件。Multibranch Pipeline 好處是可以同時(shí)檢查多個(gè)分支,為每個(gè)分支創(chuàng)建構(gòu)建Job,而 Pipeline 會(huì)把多個(gè)分支放到一個(gè) Job 中。

點(diǎn)擊 New Item ,創(chuàng)建流水線,選擇 Mutibranch Pipline。

添加 Git 源代碼 倉庫方式,我們可以自由選擇一種類型,建議使用 Single repository & branch。

由于我們沒有添加密鑰,所以 Jenkins 無法訪問你的 Github 倉庫,所以需要添加一個(gè)可訪問的密鑰。

找一臺(tái)已經(jīng)安裝了 git 的電腦,生成公鑰私鑰,為 Jenkins 和 GitHub 之間提供加密連接。

執(zhí)行命令:

ssh-keygen -t rsa -b 2048 -C "email@example.com"

根據(jù)提示,填寫要存放密鑰的路徑,如 D:/id_rsa

執(zhí)行命令后,會(huì)生成兩個(gè)文件, id_rsa、id_rsa.pub,復(fù)制 id_rsa (私鑰)中的內(nèi)容到 Jenkins 中。

然后把 id_rsa.pub (公鑰)的內(nèi)容添加到 Github 你的賬號(hào)中。

你可以使用多種方式添加認(rèn)證方式,最簡(jiǎn)單、安全的是密鑰,我們可以選擇 Secret file,然后上傳私鑰,或者使用別的方式,這里就不贅述了。

然后選擇要發(fā)布的分支,最后直接保存即可。

然后回到主界面,打開 我們創(chuàng)建的流水線,點(diǎn)擊 Build Now,即可啟動(dòng)流水線。

構(gòu)建成功截圖:

在 Linux 服務(wù)器上,查看鏡像列表:

root@localhost ~ 19:54:20 # docker images
REPOSITORY                        TAG          IMAGE ID       CREATED         SIZE
webdemo                           1.0.0        79b636ddef73   2 minutes ago   208MB

可以看到,已經(jīng)自動(dòng)打包應(yīng)用為鏡像,其鏡像名稱和版本號(hào),都可以在 Jenkinsfile 中設(shè)置。

觀察

我們可以在構(gòu)建界面中,觀察每個(gè)步驟的日志。

在 Open Blue Ocean 中,有更加好看的 UI 和方便的工具。

可視化設(shè)計(jì)流水線步驟。

觀察構(gòu)建過程。

到此這篇關(guān)于Linux下使用Jenkins自動(dòng)化構(gòu)建.NET Core應(yīng)用的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • ASP.NET?MVC模式中應(yīng)用程序結(jié)構(gòu)詳解

    ASP.NET?MVC模式中應(yīng)用程序結(jié)構(gòu)詳解

    本文詳細(xì)講解了ASP.NET?MVC模式中的應(yīng)用程序結(jié)構(gòu),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • 詳解ABP框架中領(lǐng)域?qū)拥念I(lǐng)域事件Domain events

    詳解ABP框架中領(lǐng)域?qū)拥念I(lǐng)域事件Domain events

    ABP是基于ASP.NET框架之上的Web開發(fā)框架(GitHub:https://github.com/aspnetboilerplate),這篇我們來詳解ABP框架中領(lǐng)域?qū)拥念I(lǐng)域事件Domain events,需要的朋友可以參考下
    2016-06-06
  • ASP.NET 中 Button、LinkButton和ImageButton 三種控件的使用詳解

    ASP.NET 中 Button、LinkButton和ImageButton 三種控件的使用詳解

    本文主要介紹Button、LinkButton和ImageButton 三種控件的使用方法,并一一舉例演示它們的用法,希望對(duì)大家有所幫助。
    2016-04-04
  • 將.NET?6項(xiàng)目部署到Linux

    將.NET?6項(xiàng)目部署到Linux

    本文詳細(xì)講解了將.NET?6項(xiàng)目部署到Linux的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • 如何在WebForm中使用javascript防止連打(雙擊)

    如何在WebForm中使用javascript防止連打(雙擊)

    如何在WebForm中使用javascript防止連打(雙擊)...
    2007-01-01
  • .Net中控件的命名規(guī)則

    .Net中控件的命名規(guī)則

    這篇文章介紹了.Net中控件的命名規(guī)則,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • WPF引用MVVM框架與使用方法

    WPF引用MVVM框架與使用方法

    這篇文章介紹了WPF引用MVVM框架與使用方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01
  • ADO與ADO.NET的區(qū)別與介紹

    ADO與ADO.NET的區(qū)別與介紹

    ADO與ADO.NET簡(jiǎn)介ADO與ADO.NET既有相似也有區(qū)別
    2013-02-02
  • 為ABP框架增加日志組件與依賴注入服務(wù)

    為ABP框架增加日志組件與依賴注入服務(wù)

    這篇文章介紹了為ABP框架增加日志組件與依賴注入服務(wù)的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • ASP.NET Core MVC中的控制器(Controller)介紹

    ASP.NET Core MVC中的控制器(Controller)介紹

    這篇文章介紹了ASP.NET Core MVC中的控制器(Controller),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04

最新評(píng)論

陆丰市| 邵阳县| 抚州市| 荥阳市| 沭阳县| 炎陵县| 新宁县| 德惠市| 鄂托克旗| 双桥区| 平利县| 和静县| 亚东县| 榕江县| 开平市| 汪清县| 泰来县| 铁力市| 福海县| 广汉市| 班玛县| 嫩江县| 镇安县| 正蓝旗| 驻马店市| 通州区| 涪陵区| 陆良县| 安新县| 夏津县| 肇东市| 泗水县| 黄石市| 勐海县| 都安| 巴林右旗| 天镇县| 夏邑县| 龙游县| 洛南县| 益阳市|