.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

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
管理员
上一篇:C# ASP.NET Core开发学生信息管理系统(一)
下一篇:Identity Server 4到今年年底就停止支持了,试一下使用Orchard Core 作为认证服务
评论列表

发表评论

评论内容
昵称:
关联文章

.NET 服务——CI/CD3):镜像自动分发
.NET 服务——CI/CD(2):自动打包镜像
.NET 服务——CI/CD(1):Jenkins+Gitee自动构建
.NET 服务——CI/CD(4):避坑和一点经验
使用.NET 6开发TodoList应用(31)——实现基于Github Actions和ACI的CI/CD
NuGet软官方中国国内镜像
GZUpdate自动升级服务 .NET C/S Winform客户端程序自动升级演示
NPM淘宝镜像
详解ElasticAPM实现服务的链路追踪(NET
信支付:API v3 Postman脚本使用指南
【已解决】.NET 信支付API V3中JSAPI支付发起wx.chooseWXPay时,提示 支付验证签名失败
批处理安装服务
信支付: API V3支付回调签名验证
Asp.NetCore3.1开源项目升级为.Net6.0
信支付,特约子商户商户号未授权服务商的产品权限
纸壳CMS v3.5升级.Net 6免费下载
MQ消费失败,自动重试思路
.NET中大型项目开发必备(5)--Web服务/WebApi的负载均衡
vue3+vist 打包空白
信支付:签名计算.net4.5

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码