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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

git log 获取构建时间_Docker 运行 Jenkins 自动化构建 .NET Core 项目

發(fā)布時間:2025/3/19 asp.net 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 git log 获取构建时间_Docker 运行 Jenkins 自动化构建 .NET Core 项目 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

(給DotNet加星標,提升.Net技能)

轉(zhuǎn)自:ZKEASOFTzkea.net/codesnippet

目標

當代碼提交到GitHub后,自動生成構(gòu)建項目并部署到服務(wù)器。

接下來介紹一下如何在容器中運行Jenkins,并自動化構(gòu)建GitHub上的項目,使用自動化構(gòu)建來解放你的雙手。

前置條件

一臺已經(jīng)安裝了Docker的Ubuntu服務(wù)器,有公網(wǎng)IP并可通過IP或者域名訪問。因為GitHub無法訪問本地服務(wù)器,所以不能觸發(fā)構(gòu)建,只能手動觸發(fā)構(gòu)建。

這里我們選擇使用基于.Net Core開發(fā)的紙殼CMS作為演示例子,一步一步搭建自動構(gòu)建。

當然,一樣可以不使用Docker在Windows、Linux上安裝Jenkins來達到同樣的目的。

Dockerfile

首先創(chuàng)建一個Dockerfile文件,文件名就是Dockerfile,然后輸入以下內(nèi)容:

FROM jenkins/jenkins:lts
USER root
WORKDIR /dotnet

RUN wget -O dotnet.tar.gz https://download.visualstudio.microsoft.com/download/pr/72ce4d40-9063-4a2e-a962-0bf2574f75d1/5463bb92cff4f9c76935838d1efbc757/dotnet-sdk-3.0.100-preview6-012264-linux-x64.tar.gz

RUN tar zxf dotnet.tar.gz -C ./
RUN rm -rf dotnet.tar.gz
ENV PATH="${PATH}:/dotnet:/var/jenkins_home/.dotnet/tools"
ENV DOTNET_ROOT="/dotnet"
RUN apt update -y
RUN apt install icu-devtools vim zip unzip -y
RUN usermod -a -G root jenkins
USER jenkins

簡單說明一下這個Dockerfile里面都做了什么事情:

  • 這個Docker鏡像基于jenkins

  • 設(shè)置當前用戶為root,因為后面安裝需要使用root

  • 設(shè)置當前工作目錄為dotnet

  • 下載dotnet SDK包,保存為dotnet.tar.gz。這里要注意下載正確版本的SDK,可前往微軟官方網(wǎng)站獲取下載鏈接:https://dotnet.microsoft.com/download

  • 解壓dotnet SDK到當前目錄,即/dotnet目錄

  • 刪除dotnet SDK包

  • 把dotnet目錄和dotnet tools目錄添加到環(huán)境變量PATH,這樣就可以使用dotnet命令了

  • 設(shè)置DOTNET_ROOT變量

  • 更新源

  • 安裝一些必需的,常用的工具包,其中icu-devtools是運行dotnet需要的

  • 修改jenkins用戶到root附加組

  • 設(shè)置當前用戶為jenkins

  • 到這里,Dockerfile就定義完成了。當你的項目升級到更新版本的.Net Core時,只需要進入容器下載對應(yīng)的.Net Core SDK就可以了。

    生成Docker鏡像

    接下來使用以下命令來生成Docker鏡像,鏡像名為jenkins,Tag是dotnet:

    docker build -t jenkins:dotnet

    生成這個鏡像要花數(shù)分鐘的時間,請耐心等待:

    生成完成以后,可以使用docker images命令查看所有鏡像

    運行Jenkins實例

    使用docker run命令來運行一個jenkins實例,注意映射端口,右邊的8080,50000是Jenkin的默認端口,左邊的是Docker宿主機的端口,可以按情況修改:

    docker --name

    運行命令以后會jenkins會自動初始化,當控制臺上出現(xiàn)Jenkins is fully up and running的時候就初始化完成了,同時可以看到上面有一個admin的初始化密碼,把它復制下來,在第一次使用Jenkins的時候要使用到這個密碼。

    打開瀏覽器,在地址欄中輸入服務(wù)器的IP地址和端口號訪問jenkins:

    然后將剛才復制下來的密碼,粘貼到密碼輸入框中,然后點擊繼續(xù):

    然后點擊選擇安裝插件,因為除了默認推薦的插件,我們還需要安裝一些其它插件:

    除了推薦的插件外,我們還需要安裝GitHub的插件,Publish Over SSH插件,這個插件可以將你發(fā)布好的程序通過SSH復制到你的服務(wù)器上

    然后點擊安裝,等待安裝完成:

    插件安裝完成以后,輸入初始化用戶名和密碼等信息后,就可以開始使用Jenkins了:

    接下來的使用默認信息一直點下一步就可以了。

    添加項目

    點擊添加新作業(yè),創(chuàng)建一個項目:

    輸入名稱,選擇Freestyle project,然后點擊ok創(chuàng)建:

    勾選GitHub project,然后輸入項目地址:

    在源碼管理里面選擇git,然后輸入git地址:

    有了源代碼之后,就可以添加生成操作了。在生成這里添加一個執(zhí)行shell的步驟,我們將在這里使用dotnet的publish命令來發(fā)布項目

    然后就可以在這里輸入dotnet publish命令了:

    因為我們這里演示使用的是紙殼CMS,有點不一樣,需要使用官方的發(fā)布工具,所以要輸入以下命令:

    由于ZKEACMS.Publisher沒有在容器中安裝,所以發(fā)布會報錯,這里我們還需要進入窗口安裝一下發(fā)布工具,首先進入容器:

    docker exec -it jenkins bash

    然后使用以下命令來安裝發(fā)布工具:?

    dotnet tool install -g ZKEACMS.Publisher

    點擊保存。到這里,添加項目,并且發(fā)布項目就完成了,點擊立即生成來嘗試生成一下:

    Build History里面可以看到所有的構(gòu)建歷史記錄,點擊進度條,可以查看當前生成任務(wù)的控制臺輸出:

    ?

    到這里,生成、發(fā)布已經(jīng)可以了,但是提交代碼后不會自動觸發(fā),我們需要在GitHub上添加一個Webhook,來自動觸發(fā)生成、發(fā)布。

    添加GitHub Webhook

    首先,開啟項目的GitHub觸發(fā)事件,點擊配置項目:

    然后勾選生成事件中的GitHub hook trigger

    接下來要在GitHub上設(shè)置項目的Webhook,點擊項目設(shè)置下的Webhooks來添加

    注意jenkins的github插件設(shè)定的默認的GitHub的Webhook地址是{IP}:端口/github-webhook/,所以在Payload URL輸入以下URL即可,如果有域名可以使用域名:

    在添加完后,GitHub會先嘗試一送一個請求,這時候就可以到Jenkins看一下是否會生成了。如果沒有生成,可以通過查看log來了解原因:

    部署到服務(wù)器

    現(xiàn)在自動觸發(fā)構(gòu)建已經(jīng)設(shè)置好了,就剩下最后一步,將發(fā)布好的程序推送到服務(wù)器。

    首先,要在Jenkins里面配置服務(wù)器的相關(guān)信息,點擊Manage Jenkins:

    選擇Configure System:

    然后輸入服務(wù)器的相關(guān)信息,Jenkins將會使用這些信息來遠程連接你的服務(wù)器:

    注意:devops目錄須要在目錄服務(wù)器上存在。

    添加完服務(wù)器后,再次編輯項目,添加一個生成步驟,該步驟就是發(fā)送文件:

    輸入要復制的文件目錄,和在復制完成之后要執(zhí)行的命令,文件復制完成以后,我們重新啟動一下程序的服務(wù):

    • Source files:要復制的文件

    • Remove prefix:如果不輸入,目標服務(wù)器的devops目錄(在配置SSH服務(wù)器的時候指定的目錄)下會創(chuàng)建和Sourece files一樣的目錄結(jié)構(gòu)

    • Remote directory:目標服務(wù)器下devops目錄下的子目錄

    • Exec command:在文件復制完成后將會在遠程服務(wù)器上執(zhí)行該命令

    到這里整個自動構(gòu)建環(huán)境就搭配完成了。

    推薦閱讀??點擊標題可跳轉(zhuǎn)ASP.NET Core 3.x 授權(quán)中的概念一文帶你了解C# DLR 的世界瀏覽器中的.NET Core Blazor WebAssembly

    看完本文有收獲?請轉(zhuǎn)發(fā)分享給更多人

    關(guān)注「DotNet」加星標,提升.Net技能?

    好文章,我在看??

    總結(jié)

    以上是生活随笔為你收集整理的git log 获取构建时间_Docker 运行 Jenkins 自动化构建 .NET Core 项目的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 国产av一区二区三区 | 亚洲一区二区激情 | 国产精品久久久久999 | 亚洲欧洲中文字幕 | 成人污在线观看 | 国产一级免费片 | 欧美熟妇精品久久久久久 | 成人国产精品免费 | 国产丝袜在线播放 | 欧美一区国产一区 | 久操福利 | 精品成人免费一区二区在线播放 | 2020狠狠干 | 亚洲欧美日韩精品永久在线 | 亚洲妇女无套内射精 | 五月天综合 | 麻豆短视频 | 亚洲黄网在线观看 | 亚洲成人资源 | 深夜视频一区二区三区 | 人妻中文字幕一区二区三区 | 成人欧美一区二区三区黑人动态图 | jizz视频| 91免费在线视频观看 | 国产免费a视频 | 一本色道久久综合亚洲二区三区 | 日本一区二区成人 | 日韩欧美视频在线播放 | 成人福利在线免费观看 | 黄色片中文字幕 | 午夜a视频 | 久久久蜜桃 | 亚洲理论视频 | 亚洲天堂黄 | 草的我好爽 | 精品妇女一区二区三区 | 中文字幕一级片 | 波多野结衣在线观看一区二区 | 91成人精品视频 | 美女爱爱视频 | 日本3级网站 | 国产麻豆电影在线观看 | 成人精品影院 | 欧美成人自拍视频 | 中文字幕在线免费 | 91人妻一区二区三区蜜臀 | 色窝窝无码一区二区三区成人网站 | 成人入口| 亚洲加勒比在线 | 娇妻第一次尝试交换的后果 | 日韩日韩 | 日韩va亚洲va欧美va久久 | 久久久久久久久久久久久久国产 | 国产一区二区视频在线观看 | 久久久久婷 | 黑人三级视频 | 久久人妻免费视频 | 久久天堂网| 日韩欧美成人精品 | 三级爱爱 | 国产精品秘| 精品人妻少妇嫩草av无码专区 | 成人a网| 精品熟女一区二区三区 | 日韩三级理论 | 封神榜二在线高清免费观看 | 黄色三级大片 | 欧美日韩人妻精品一区在线 | 成人做爰www看视频软件 | 男女羞羞动态图 | 欧美精品一区三区 | 久久亚洲aⅴ无码精品 | 91av在线看| 青娱乐伊人 | 欧美午夜精品一区二区三区电影 | 91免费福利 | 三度诱惑免费版电影在线观看 | 色六月婷婷 | 粉嫩av一区 | 精品人妻在线一区二区三区 | 日本xxxx免费| 日韩性大片| 国内精品视频在线观看 | 97桃色| 欧美性猛交xxxx乱大交 | 色.www| 国产精品91视频 | 欧美精品一区二区三 | 色国产在线 | 欧美h视频在线观看 | 一个人在线观看免费视频www | 九九热视频这里只有精品 | 91免费入口| 国产精品一二三 | 91九色中文| 国产suv精品一区二区 | 奇米视频在线 | 久久久久久久偷拍 | 琪琪五月天 |