.NET微服务架构CI/CD镜像自动分发

Cytheria ·
更新时间:2024-11-10
· 326 次阅读

如何通过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镜像自动分发的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持软件开发网。



net 自动 .NET cd ci

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章