1. 程式人生 > 程式設計 >.NET微服務架構CI/CD映象自動分發

.NET微服務架構CI/CD映象自動分發

如何通過Jenkins完成映象分發?基本做法是:打包映象→上傳映象到倉庫→分發。映象倉庫也有很多,比如 hub、Harbor等,今天這一篇講一下基於阿里雲映象倉庫的操作。

首先,準備一個阿里雲映象倉庫,個人版是免費的。

然後下載這個外掛:

Publish Over SSH

.NET微服務架構CI/CD映象自動分發

這個外掛主要用來遠端登入伺服器並執行指令碼。

外掛安裝完畢後,系統設定會多出這一項,戳圖裡這個按鈕:

.NET微服務架構CI/CD映象自動分發

然後,把伺服器的ip、賬戶、密碼填進去:

.NET微服務架構CI/CD映象自動分發

配置好以後,最好點測試按鈕試一下,如果沒問題會輸出“Success”

接下來找到之前的工作流,新增構建步驟:

.NET微服務架構CI/CD映象自動分發

選中剛才新增的server,編寫指令碼進行上傳:

echo "==========登入倉庫=========="
docker login --username=阿里雲賬戶 --password=阿里雲倉庫密碼 registry.cn-shenzhen.aliyuncs.com

echo "==========上傳映象=========="
docker tag mydotnet6 registry.cn-shenzhen.aliyuncs.com/名稱空間/倉庫名:latest
docker push registry.cn-shenzhen.aliyuncs.com/名稱空間/倉庫名:latest

echo "==========清理映象=========="
docker rmi -f mydotnet6
docker rmi registry.cn-shenzhen.aliyuncs.com/名稱空間/倉庫名:latest

手動構建一下,去看阿里雲倉庫:

.NET微服務架構CI/CD映象自動分發

映象自動上傳,Get~

接下來要從倉庫拉取映象並執行,該怎麼做呢?想必聰明的你已經知道了——沒錯,還是同樣的流程:新增SSH Server→新增構建步驟→編寫Shell。新增並選擇新的SSH Server,執行這些shell:

echo "==========停止進http://www.cppcns.com程=========="
docker kill -s KILL mydotnet6

echo "==========刪除容器=========="
docker rm mydotnet6 

echo "==========刪除映象=========="
docker rmi -f registry.cn-shenzhen.aliyuncs.com/名稱空間/倉庫名:latest

echo "==========登入倉庫=========="
docker login --username=阿里雲賬戶 --password=阿里雲倉庫密碼 registry.cn-shenzhen.aliyuncs.com

echo "==========拉取新映象=========="
docker pull registry.cn-shenzhen.aliyuncs.com/名稱空間/倉庫名:latest echo "==========開始執行==========" docker run -itd -p 5000:80 --restart always --name=mydotnet6 registry.cn-shenzhen.aliyuncs.com/名稱空間/倉庫名:latest

然後再次手動觸發構建,去seIOdIbzrver02檢視容器:

.NET微服務架構CI/CD映象自動分發

訪問一下:

.NET微服務架構CI/CD映象自動分發

訪問正常。手動構建沒問題,那麼自動構建呢?開啟專案新增一個NB方法:

.NET微服務架構CI/CD映象自動分發

Git提交,等待一段時間後直接重新整理swagger:

.NET微服務架構CI/CD映象自動分發

只需要Git上傳程式碼就能完成這些,爽不?

自動部署Get~

小結

前文:

.NET微服務架構CI/CD自動打包映象

.NET微服務架構CI/CD自動構建Jenkins+Gitee

看完這三篇文章,你應該可以成功搭建CICD環境了,然後你會發現它並不難。不過如果你想在生產環境應用它,可能會有些坑。當然,我已經踩過了,而且有些坑還給我的公司造成了損失。既然說到這裡,當然不會看著同學們踩坑,所以我還會寫個防踩坑指南,下一篇見。

到此這篇關於.NET微服務架構CI/CD映象自動分發的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援我們。