網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
如何通過(guò)Jenkins完成鏡像分發(fā)?基本做法是:打包鏡像→上傳鏡像到倉(cāng)庫(kù)→腳本分發(fā)。鏡像倉(cāng)庫(kù)也有很多,比如docker hub、Harbor等,今天這一篇講一下基于阿里云鏡像倉(cāng)庫(kù)的操作。
首先,準(zhǔn)備一個(gè)阿里云鏡像倉(cāng)庫(kù),個(gè)人版是免費(fèi)的。
然后下載這個(gè)插件:
Publish Over SSH
這個(gè)插件主要用來(lái)遠(yuǎn)程登錄服務(wù)器并執(zhí)行腳本。
插件安裝完畢后,系統(tǒng)設(shè)置會(huì)多出這一項(xiàng),戳圖里這個(gè)按鈕:
然后,把服務(wù)器的ip、賬戶、密碼填進(jìn)去:
配置好以后,最好點(diǎn)測(cè)試按鈕試一下,如果沒(méi)問(wèn)題會(huì)輸出“Success”
接下來(lái)找到之前的工作流,新增構(gòu)建步驟:
選中剛才新增的server,編寫(xiě)腳本進(jìn)行上傳:
echo "==========登錄倉(cāng)庫(kù)==========" docker login --username=阿里云賬戶 --password=阿里云倉(cāng)庫(kù)密碼 registry.cn-shenzhen.aliyuncs.com echo "==========上傳鏡像==========" docker tag mydotnet6 registry.cn-shenzhen.aliyuncs.com/命名空間/倉(cāng)庫(kù)名:latest docker push registry.cn-shenzhen.aliyuncs.com/命名空間/倉(cāng)庫(kù)名:latest echo "==========清理鏡像==========" docker rmi -f mydotnet6 docker rmi registry.cn-shenzhen.aliyuncs.com/命名空間/倉(cāng)庫(kù)名:latest
手動(dòng)構(gòu)建一下,去看阿里云倉(cāng)庫(kù):
鏡像自動(dòng)上傳,Get~
接下來(lái)要從倉(cāng)庫(kù)拉取鏡像并運(yùn)行,該怎么做呢?想必聰明的你已經(jīng)知道了——沒(méi)錯(cuò),還是同樣的流程:添加SSH Server→添加構(gòu)建步驟→編寫(xiě)Shell。添加并選擇新的SSH Server,執(zhí)行這些shell:
echo "==========停止進(jìn)程==========" docker kill -s KILL mydotnet6 echo "==========刪除容器==========" docker rm mydotnet6 echo "==========刪除鏡像==========" docker rmi -f registry.cn-shenzhen.aliyuncs.com/命名空間/倉(cāng)庫(kù)名:latest echo "==========登錄倉(cāng)庫(kù)==========" docker login --username=阿里云賬戶 --password=阿里云倉(cāng)庫(kù)密碼 registry.cn-shenzhen.aliyuncs.com echo "==========拉取新鏡像==========" docker pull registry.cn-shenzhen.aliyuncs.com/命名空間/倉(cāng)庫(kù)名:latest echo "==========開(kāi)始運(yùn)行==========" docker run -itd -p 5000:80 --restart always --name=mydotnet6 registry.cn-shenzhen.aliyuncs.com/命名空間/倉(cāng)庫(kù)名:latest
然后再次手動(dòng)觸發(fā)構(gòu)建,去server02查看容器:
訪問(wèn)一下:
訪問(wèn)正常。手動(dòng)構(gòu)建沒(méi)問(wèn)題,那么自動(dòng)構(gòu)建呢?打開(kāi)項(xiàng)目新增一個(gè)NB方法:
Git提交,等待一段時(shí)間后直接刷新swagger:
只需要Git上傳代碼就能完成這些,爽不?
自動(dòng)部署Get~
小結(jié)
前文:
.NET微服務(wù)架構(gòu)CI/CD自動(dòng)打包鏡像
.NET微服務(wù)架構(gòu)CI/CD自動(dòng)構(gòu)建Jenkins+Gitee
看完這三篇文章,你應(yīng)該可以成功搭建CICD環(huán)境了,然后你會(huì)發(fā)現(xiàn)它并不難。不過(guò)如果你想在生產(chǎn)環(huán)境應(yīng)用它,可能會(huì)有些坑。當(dāng)然,我已經(jīng)踩過(guò)了,而且有些坑還給我的公司造成了損失。既然說(shuō)到這里,當(dāng)然不會(huì)看著同學(xué)們踩坑,所以我還會(huì)寫(xiě)個(gè)防踩坑指南,下一篇見(jiàn)。
原文鏈接:https://www.cnblogs.com/muchengqingxin/p/15768330.html
相關(guān)推薦
- 2022-02-20 Spring Boot 打包報(bào)錯(cuò)Failed to execute goal org.apache.
- 2022-06-29 基于C++實(shí)現(xiàn)五子棋小游戲_C 語(yǔ)言
- 2022-06-04 Android實(shí)現(xiàn)懸浮窗效果_Android
- 2022-07-16 springclud 服務(wù)與服務(wù)之間調(diào)用(提供者 接口 消費(fèi)者)
- 2022-08-03 使用Apache?Camel表達(dá)REST服務(wù)的方法_Linux
- 2022-05-02 Python的os包與os.path模塊的用法詳情_(kāi)python
- 2022-07-11 Jenkins修改端口號(hào), jenkins容器修改默認(rèn)端口號(hào)
- 2022-04-24 python使用技巧-查找文件?_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支