.NET 微服务——CI/CD(3):镜像自动分发
如何通过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~
小结
看完这三篇文章,你应该可以成功搭建CICD环境了,然后你会发现它并不难。不过如果你想在生产环境应用它,可能会有些坑。当然,我已经踩过了,而且有些坑还给我的公司造成了损失。既然说到这里,当然不会看着同学们踩坑,所以我还会写个防踩坑指南,下一篇见。
转 https://www.cnblogs.com/muchengqingxin/p/15768330.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)