【.NET】实现CI/CD(二)运行镜像,自动化部署
(一重山,兩重山。)
書接上文,在上回中我們說到了《【Azure + Core】實(shí)現(xiàn)CI/CD(一)構(gòu)建鏡像并推送倉(cāng)庫(kù)
今天我們繼續(xù)往下說,說下CD(持續(xù)部署)的流程,也是很簡(jiǎn)單。這里先貼下上篇文章末尾留的小問題,在CD的時(shí)候遇到了個(gè)錯(cuò)誤,打開日志是這樣的,大家可以先看看,后續(xù)會(huì)解答:
1$ 添加Release管道
和CI類似,還是在Pipelines(管道)的Release(發(fā)布)中,新建一個(gè)Pipeline:
選擇一個(gè)空模板:
將鼠標(biāo)放到Artifacts(制品)模塊上,點(diǎn)擊添加一個(gè)Artifact,此時(shí)右側(cè)喚起編輯窗口,
選擇build,然后選擇構(gòu)建的管道源
然后可以開啟自動(dòng)構(gòu)建,只要提交代碼的時(shí)候,便會(huì)觸發(fā)CI的Build操作,接著便立即觸發(fā)CD的Release操作,整個(gè)流程一氣呵成
配置好了Artifact,你可以稱它為制品,然后就可以配置task任務(wù)了。
2$?配置Agent代理
將鼠標(biāo)放到右側(cè)的Stage 1選項(xiàng)上,可以看到有三塊功能選擇,分別是:
①、重命名Stage(階段);
②、添加一個(gè)新的Stage;
③、編輯task(任務(wù));
點(diǎn)擊任務(wù)鏈接,配置Agent Job(代理工作),這里有兩點(diǎn)需要注意:
1、代理池,說白了就是部署的地方,目前可以默認(rèn)即可,以后需要用自己的服務(wù)器;
2、agent specification(代理規(guī)格),就是服務(wù)器規(guī)格配置;
請(qǐng)注意!這里默認(rèn)的是vs2019規(guī)格,是windows環(huán)境的,如果不改的話,就會(huì)出現(xiàn)文章開頭的錯(cuò)誤,Docker不能運(yùn)行的平臺(tái)問題。所以直接選Linux即可。
3$ 配置Task任務(wù)
點(diǎn)擊上邊的加號(hào),篩選docker的task模板
在新喚起的編輯頁,編輯命令即可,Docker有三個(gè)類型,對(duì)應(yīng)不同的命令類型,
我們第一步需要先刪除舊的容器,所以直接用run命令即可,所以Task的版本用0.*:
還是和上篇一樣,需要選擇容器Registry地址,然后就是配置一個(gè)action(行為),增加一個(gè)刪除鏡像的命令
4$ 配置其他的Stage階段
仿造上邊第一步刪除舊容器的階段步驟,再建一個(gè)運(yùn)行容器的Stage,整體流程一致,不再細(xì)說,配置圖如下:
用的是Task版本為1.*的Docker容器配置,使用自定義的DockerRegistry,配置鏡像名,支持自定義,比如我加了前綴,也可以指定端口。
點(diǎn)擊Save(保存),一套簡(jiǎn)單的持續(xù)集成管道就建好了
手動(dòng)觸發(fā),create release,就可以看到詳細(xì)的過程:
等一段時(shí)間后,就可以看到效果了,但是這樣是不行的,因?yàn)槲覀冞€沒有自己的IP。
5$?其他問題
一、如何預(yù)覽效果
上邊我們說到了一個(gè)地方,就是代理池(Agent Pool),這個(gè)東西就是配置我們的服務(wù)器地址的,也就是宿主機(jī),配置好以后就可以看效果了。
當(dāng)然,也可以直接對(duì)接k8s,效果也是一樣的,等我后續(xù)的文章吧。
二、如何自定義Docker Registry
目前這兩篇文章可以看出來,用的是DockerHub作為服務(wù)倉(cāng)庫(kù)地址,如何使用自己的私庫(kù)或者Azure上的呢,也是等我后續(xù)的文章吧。
下次再見咯。
總結(jié)
以上是生活随笔為你收集整理的【.NET】实现CI/CD(二)运行镜像,自动化部署的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自主生态再进一步,龙芯中科完成.NET3
- 下一篇: 记一次 .NET 某上市工业智造 CPU