激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

香港云服务器
服務(wù)器之家 - 編程語言 - C# - 如何利用Jenkins + TFS為.Net Core實現(xiàn)持續(xù)集成/部署詳解

如何利用Jenkins + TFS為.Net Core實現(xiàn)持續(xù)集成/部署詳解

2022-02-23 13:38myzony C#

這篇文章主要給大家介紹了關(guān)于如何利用Jenkins + TFS為.Net Core實現(xiàn)持續(xù)集成/部署的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

前言

在前后端分離開發(fā)的項目當(dāng)中為了避免重復(fù)構(gòu)建發(fā)布,我們需要部署一個持續(xù)發(fā)布環(huán)境,而目前的開發(fā)環(huán)境服務(wù)器都是基于 centos 的,因此每次在本地發(fā)布之后還需要打包,上傳,部署,十分繁瑣。故這里采用了比較成熟的jenkins 作為持續(xù)部署環(huán)境。

為了方便安裝,我們這里使用了 docker 來進(jìn)行安裝,至于 docker 安裝的步驟這里不在贅述,詳情可以參考這一篇博文

上面安裝的是一個較老的版本,這里推薦參考docker 官方文檔來進(jìn)行安裝。

安裝好 docker 之后,拉取 jenkins 的官方鏡像。執(zhí)行如下命令:

?
1
docker pull jenkins/jenkins

拉取完畢之后我們基于這個鏡像封裝一個新的鏡像出來,可能會問為什么不能直接使用呢?因為這兒的 jenkins鏡像并不包含 docker 環(huán)境,所以我們需要封裝一個新的鏡像讓其能夠訪問宿主機的 docker 程序。

構(gòu)建 dockerfile 內(nèi)容如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
from jenkins/jenkins:latest
user root
#清除了基礎(chǔ)鏡像設(shè)置的源,切換成阿里云的源
run echo '' > /etc/apt/sources.list.d/jessie-backports.list \
 && echo "deb http://mirrors.aliyun.com/debian jessie main contrib non-free" > /etc/apt/sources.list \
 && echo "deb http://mirrors.aliyun.com/debian jessie-updates main contrib non-free" >> /etc/apt/sources.list \
 && echo "deb http://mirrors.aliyun.com/debian-security jessie/updates main contrib non-free" >> /etc/apt/sources.list
#更新源并安裝缺少的包
run apt-get update && apt-get install -y libltdl7
arg dockergid=999
 
run echo "docker:x:${dockergid}:jenkins" >> /etc/group \
user jenkins

完成之后執(zhí)行如下命令構(gòu)建新的 docker 鏡像:

?
1
docker build -t docker/jenkins .

下面我們就開始運行我們的 jenkins 容器了:

?
1
2
3
4
5
docker run -d -p 8080:8080 -p 50000:50000 \
 --name=jenkins -v /root/docker/jenkins:/var/jenkins_home \
 -v /var/run/docker.sock:/var/run/docker.sock \
 -v $(which docker):/usr/bin/docker \
 docker/jenkins

這里我們將 jenkins 鏡像里面的 /var/jenkins_home 映射到了宿主機的 /root/docker/jenkins 文件夾,在這個文件夾里面都存放的是 jenkins 的一些配置項等。

注意,這里可能會出現(xiàn)如下錯誤:

?
1
2
touch: cannot touch /var/jenkins_home/copy_reference_file.log': permission denied
can not write to /var/jenkins_home/copy_reference_file.log. wrong volume permissions?

這是因為在 docker 內(nèi)部的 jenkins user 用戶沒有權(quán)限,因為映射的 /root/docker/jenkins/ 文件夾屬于root 用戶的,而 jenkins user 的 uid 為 1000,執(zhí)行如下命令:

?
1
sudo chown -r 1000:1000 /home/docker/jenkins

之后再次運行 jenkins 的容器,訪問 http://服務(wù)器ip:8080/ 站點,會提示你輸入密鑰:

如何利用Jenkins + TFS為.Net Core實現(xiàn)持續(xù)集成/部署詳解

我們來到宿主機執(zhí)行以下 shell 命令:

?
1
docker container logs jenkins

就可以看到密鑰其實已經(jīng)輸出在終端了,復(fù)制過來,粘貼進(jìn)去就可以了。之后就是選擇你需要安裝的插件,選擇第一個默認(rèn)即可,可能這里因為網(wǎng)絡(luò)原因會安裝失敗,可以多重試幾次,或者直接忽略掉,后面我們會將如何解決。

安裝完成之后輸入用戶名密碼,就可以開始使用了,可能你剛才會因為網(wǎng)絡(luò)等原因造成插件安裝失敗,這里我們來到

jenkins>>系統(tǒng)管理>>管理插件>>高級

然后將 升級站點 地址改為 http://mirror.xmission.com/jenkins/updates/current/update-center.json。之后安裝之前缺失的插件。

這里我們項目使用的是 tfs 進(jìn)行源代碼管理,所以我們需要安裝 tfs 插件,在 manage jenkins 的 manage plugin 里面我們找到 team foundation server plug-in 插件,勾選,點擊 download now and install after restart 按鈕,勾選 restart jenkins when installation is complete and no jobs are running 。

安裝完成之后 jenkins 會重啟,等待重啟完畢之后,來到 jenkins>>manage jenkins>>configure system 查看 tfs/team services 然后添加你的 tfs collection。

如何利用Jenkins + TFS為.Net Core實現(xiàn)持續(xù)集成/部署詳解

保存之后我們就可以新建項目了。

首先,我們來到首頁,選擇 new item:

如何利用Jenkins + TFS為.Net Core實現(xiàn)持續(xù)集成/部署詳解

然后選擇自由風(fēng)格項目,填上名稱.

如何利用Jenkins + TFS為.Net Core實現(xiàn)持續(xù)集成/部署詳解

在 source code management 上選擇 tfs,并且填入你的 tfs 服務(wù)器地址,項目路徑,與你的賬號密碼:

如何利用Jenkins + TFS為.Net Core實現(xiàn)持續(xù)集成/部署詳解

然后你就可以嘗試構(gòu)建一下,構(gòu)建成功之后就會在 workspace 看到你的項目文件被拉下來了。

如何利用Jenkins + TFS為.Net Core實現(xiàn)持續(xù)集成/部署詳解

那么我們的代碼如何構(gòu)建并且部署呢?因為我們之前在 jenkins 的 docker 鏡像啟動的時候掛載了宿主機的 docker 程序,我們現(xiàn)在就可以直接基于微軟的 dotnetcore 鏡像來構(gòu)建我們的項目。所以,我們先拉取微軟的 dotnetcore 鏡像,運行如下命令:

?
1
docker pull microsoft/dotnet:latest

拉取鏡像之后,我們來編寫一個 dockerfile 文件來讓 jenkins 來執(zhí)行 shell 構(gòu)建。

如果你還不知道如何編寫 dockerfile 文件,可以參考 。

?
1
2
3
4
5
6
7
8
9
10
11
12
from microsoft/dotnet:latest
workdir /app
copy ./ .
env aspnetcore_urls http://+:5000
expose 5000
 
run cd ./hkerp.identityserver.host \
 && dotnet restore \
 && dotnet build
 
workdir /app/hkerp.identityserver.host
entrypoint ["dotnet","run"]

然后將這個 dockerfile 放在你的項目里面,類似于這樣:

如何利用Jenkins + TFS為.Net Core實現(xiàn)持續(xù)集成/部署詳解

然后我們再回到剛才 jenkins 里面,配置剛才項目,新建一個 shell step,就像這樣:

如何利用Jenkins + TFS為.Net Core實現(xiàn)持續(xù)集成/部署詳解

代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/sh
cd /var/jenkins_home/workspace/api_identityserver
docker container prune << eof
y
eof
docker container ls -a | grep "api_identityserver"
if [ $? -eq 0 ];then
 docker container stop api_identityserver
 docker container rm api_identityserver
fi
docker image prune << eof
y
eof
docker build -t api_identityserver .
docker run -d -p 8083:5000 --name=api_identityserver api_identityserver

步驟就是首先清理掉 docker 處于終止?fàn)顟B(tài)的容器,然后判斷有沒有叫 api_identityserver 的容器在運行,如果有就直接停掉,然后清除所有的虛懸鏡像,使用當(dāng)前目錄的 dockerfile 構(gòu)建一個新的 api_identityserver 鏡像,使用 api_identityserver 鏡像運行一個新的容器。

這兒我安裝了 jenkins 的一個 blue ocean 插件,來看一下:

如何利用Jenkins + TFS為.Net Core實現(xiàn)持續(xù)集成/部署詳解

運行一下:

如何利用Jenkins + TFS為.Net Core實現(xiàn)持續(xù)集成/部署詳解

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對服務(wù)器之家的支持。

原文鏈接:https://www.cnblogs.com/myzony/p/8434121.html

延伸 · 閱讀

精彩推薦
689
主站蜘蛛池模板: 久久99精品国产自在现线 | 精品国产91久久久久久 | 99精品视频久久精品视频 | 国内精品久久久久久久久久 | 欧美一级精品 | 亚洲成人福利 | av免费在线观看免费 | 国产精品成人久久久久a级 av电影在线免费 | 毛片免费看电影 | 天天色综合6 | 久久久青青草 | 欧美成人黄色小视频 | 久久在线精品 | 久久久久久久久久久亚洲 | 久久久精品视 | 精精国产xxxx视频在线野外 | 高清一区二区在线观看 | 国产一区免费观看 | 久久久久久久久久久久久久久伊免 | 制服下着マ○コ航空5 | 精品小视频 | 7777网站| v11av在线视频成人 | 99sesese| 欧美另类69xxxxx 视频 | 久久99精品国产自在现线 | 欧美日韩亚洲在线 | 国产三级精品最新在线 | 香蕉视频99 | 九九热精品在线 | 亚洲人成网站免费播放 | 羞羞视频2023 | 永久免费不卡在线观看黄网站 | 国产91成人| 国产精品午夜一区 | 激情97| 成人黄色免费网站 | 国产精品伦视频看免费三 | av电影网站在线观看 | 亚洲人成在线播放 | 亚洲成人综合网站 |