.NET微服務架構CI/CD鏡像自動分發
如何通過Jenkins完成鏡像分發?基本做法是:打包鏡像→上傳鏡像到倉庫→腳本分發。鏡像倉庫也有很多,比如docker hub、Harbor等,今天這一篇講一下基於阿裡雲鏡像倉庫的操作。
首先,準備一個阿裡雲鏡像倉庫,個人版是免費的。
然後下載這個插件:
Publish Over SSH
這個插件主要用來遠程登錄服務器並執行腳本。
插件安裝完畢後,系統設置會多出這一項,戳圖裡這個按鈕:
然後,把服務器的ip、賬戶、密碼填進去:
配置好以後,最好點測試按鈕試一下,如果沒問題會輸出“Success”
接下來找到之前的工作流,新增構建步驟:
選中剛才新增的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
手動構建一下,去看阿裡雲倉庫:
鏡像自動上傳,Get~
接下來要從倉庫拉取鏡像並運行,該怎麼做呢?想必聰明的你已經知道瞭——沒錯,還是同樣的流程:添加SSH Server→添加構建步驟→編寫Shell。添加並選擇新的SSH Server,執行這些shell:
echo "==========停止進程==========" 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
然後再次手動觸發構建,去server02查看容器:
訪問一下:
訪問正常。手動構建沒問題,那麼自動構建呢?打開項目新增一個NB方法:
Git提交,等待一段時間後直接刷新swagger:
隻需要Git上傳代碼就能完成這些,爽不?
自動部署Get~
小結
前文:
.NET微服務架構CI/CD自動打包鏡像
.NET微服務架構CI/CD自動構建Jenkins+Gitee
看完這三篇文章,你應該可以成功搭建CICD環境瞭,然後你會發現它並不難。不過如果你想在生產環境應用它,可能會有些坑。當然,我已經踩過瞭,而且有些坑還給我的公司造成瞭損失。既然說到這裡,當然不會看著同學們踩坑,所以我還會寫個防踩坑指南,下一篇見。
到此這篇關於.NET微服務架構CI/CD鏡像自動分發的文章就介紹到這瞭。希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Jenkins打包微服務構建Docker鏡像運行的實現
- Docker容器harbor私有倉庫部署和管理
- docker建立私有倉庫的過程
- docker比賽提交常用命令小結
- docker+gitlab+jenkins從零搭建自動化部署