中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux下怎么使用Jenkins自動化構建.NET?Core應用

發布時間:2022-04-02 10:42:53 來源:億速云 閱讀:218 作者:iii 欄目:開發技術

本篇內容主要講解“Linux下怎么使用Jenkins自動化構建.NET Core應用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Linux下怎么使用Jenkins自動化構建.NET Core應用”吧!

部署 Jenkins

請提前在 Linux 上安裝 Docker,在 Linux 中,我們使用 Docker 啟動 Jenkins,這樣可以避免手動安裝大量依賴以及污染本地環境,也便于快速啟動和故障恢復。

安裝 Docker 完畢后,使用 docker version 檢查 Docker 版本,Docker 版本不能為 1.x、3.x 這種版本,請升級到 18.x 以上版本。一般在 Ubuntu 系統中,下載安裝的是最新版本,但是在 Centos 中因為默認鏡像源中的版本比較舊, 安裝 Doker 版本較低,需要手動添加新版本的鏡像源再升級。

請參考:http://www.5655pk.com/article/243104.htm

因為會使用到容器提供環境,以及使用 Docker 打包 .NET Core 程序為 Docker 鏡像,所以需要在 Jenkins 容器中映射 Docker 的 .sock 文件,以便在容器中,還能使用 Docker 命令。

在宿主機中創建 /var/jenkins_home 目錄,用于備份 Jenkins 中的數據。

在 Linux 中使用 Docker 啟動 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

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

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

安裝插件

登錄 Jenkins 后,會提示安裝推薦的插件,請根據提示安裝推薦的插件,推薦安裝的插件列表如下:

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)

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

Linux下怎么使用Jenkins自動化構建.NET?Core應用

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

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

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

# 提供 Git 參數化和鉤子觸發構建支持,不需要可以不安裝
Git Parameter
Generic Webhook Trigger

拉取鏡像

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

拉取一個 .NET Core SDK,每次啟動流水線時,都會啟動一個 .NET Core SDK 容器,為我們提供構編譯、發布 .NET Core 程序的環境。

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

拉取一個 ASP.NET Core Runtime,用于制作應用鏡像的基礎鏡像。

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 腳本

筆者貼心地給各位同學準備了 Demo 項目,請到 https://github.com/whuanle/DotNetCoreJenkinsDemo 倉庫,fork 到你的倉庫,后續我們使用這個 ASP.NET Core 的 Demo 程序實踐流程。

在項目文件中,可以找到一個 Jenkinsfile 文件,此文件為我們定義流水線的步驟。

我們看一下簡單的 Jenkinsfile 模板:

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

stages 中,定義流水線的階段,在模板中,一個定義了三個階段,分別是 BuildTestDeploy

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

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

demo 中的 Jenkinsfile 比較簡單,我們可以找個 Publish 階段的內容看一下:

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

其實很簡單,每個步驟執行 shell 命令就行,我們可以使用 sh '...' 表示此步驟要執行的 shell 命令。

接著我們看一下 Jenkinsfile 開頭的兩部分內容。

    // 全局環境變量
    environment {
        IMAGENAME     = 'webdemo'       // 鏡像名稱
        IMAGETAG      = '1.0.0'         // 鏡像標簽
        APPPORT       = '8089'          // 應用占用的端口
        APPDIR        = '/opt/app'      // 應用工作的目錄
    }

    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 中,可以定義此次構建過程的環境變量。

agent 則是節點選擇器,可以選擇在何種環境下啟動流水線,有 nodedocker 等類型。

構建流水線

登錄到 Jenkins 網頁后臺,在左側菜單欄中點擊 New Item,開始創建流水線。

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

  • Freestyle project

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

  • Pineline、Multibranch Pipeline

    他們都可以同時處理多個分支,這兩種都是依賴于項目中的 Jenkinsfile 文件。Multibranch Pipeline 好處是可以同時檢查多個分支,為每個分支創建構建Job,而 Pipeline 會把多個分支放到一個 Job 中。

點擊 New Item ,創建流水線,選擇 Mutibranch Pipline。

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

Linux下怎么使用Jenkins自動化構建.NET?Core應用

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

Linux下怎么使用Jenkins自動化構建.NET?Core應用

找一臺已經安裝了 git 的電腦,生成公鑰私鑰,為 Jenkins 和 GitHub 之間提供加密連接。

執行命令:

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

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

執行命令后,會生成兩個文件, id_rsaid_rsa.pub,復制 id_rsa (私鑰)中的內容到 Jenkins 中。

然后把 id_rsa.pub (公鑰)的內容添加到 Github 你的賬號中。

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

Linux下怎么使用Jenkins自動化構建.NET?Core應用

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

Linux下怎么使用Jenkins自動化構建.NET?Core應用

然后回到主界面,打開 我們創建的流水線,點擊 Build Now,即可啟動流水線。

Linux下怎么使用Jenkins自動化構建.NET?Core應用

構建成功截圖:

Linux下怎么使用Jenkins自動化構建.NET?Core應用

在 Linux 服務器上,查看鏡像列表:

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

可以看到,已經自動打包應用為鏡像,其鏡像名稱和版本號,都可以在 Jenkinsfile 中設置。

觀察

我們可以在構建界面中,觀察每個步驟的日志。
Linux下怎么使用Jenkins自動化構建.NET?Core應用

Linux下怎么使用Jenkins自動化構建.NET?Core應用

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

Linux下怎么使用Jenkins自動化構建.NET?Core應用

可視化設計流水線步驟。

Linux下怎么使用Jenkins自動化構建.NET?Core應用

Linux下怎么使用Jenkins自動化構建.NET?Core應用

觀察構建過程。

Linux下怎么使用Jenkins自動化構建.NET?Core應用

Linux下怎么使用Jenkins自動化構建.NET?Core應用

到此,相信大家對“Linux下怎么使用Jenkins自動化構建.NET Core應用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南昌县| 石楼县| 吉木萨尔县| 沂南县| 海伦市| 潞城市| 木兰县| 永昌县| 和平区| 和田县| 龙江县| 平舆县| 吉隆县| 扎兰屯市| 白银市| 泗水县| 石景山区| 池州市| 德庆县| 儋州市| 玉树县| 紫阳县| 陕西省| 隆昌县| 石门县| 兰溪市| 财经| 南华县| 比如县| 堆龙德庆县| 祥云县| 浦江县| 辽阳市| 晴隆县| 绥中县| 吴堡县| 东阿县| 乌拉特中旗| 浪卡子县| 齐齐哈尔市| 新竹县|