【.NET】实现CI/CD(二)运行镜像,自动化部署

748a24e8ce1fb3d8c509a4b62826f179.png

(一重山,两重山。)

书接上文,在上回中我们说到了《【Azure + Core】实现CI/CD(一)构建镜像并推送仓库

今天我们继续往下说,说下CD(持续部署)的流程,也是很简单。这里先贴下上篇文章末尾留的小问题,在CD的时候遇到了个错误,打开日志是这样的,大家可以先看看,后续会解答:

72e252a1e42fbbb8621971de1ee4c0bf.png

1$ 添加Release管道

和CI类似,还是在Pipelines(管道)的Release(发布)中,新建一个Pipeline:

c52591f55ee0452106d3cabcbbbaa410.png

选择一个空模板:

bc4fa39d210502c245ae6aa9336e280c.png

将鼠标放到Artifacts(制品)模块上,点击添加一个Artifact,此时右侧唤起编辑窗口,

选择build,然后选择构建的管道源

3c94d87aaf08ae65448d5f4ca4e8a81a.png

9cfd0ec92d726fdef4f4cd853a9b8449.png

然后可以开启自动构建,只要提交代码的时候,便会触发CI的Build操作,接着便立即触发CD的Release操作,整个流程一气呵成

32e024df9dfc3fa1298ba5661990e5c5.png

配置好了Artifact,你可以称它为制品,然后就可以配置task任务了。

2$ 配置Agent代理

将鼠标放到右侧的Stage 1选项上,可以看到有三块功能选择,分别是:

①、重命名Stage(阶段);

②、添加一个新的Stage;

③、编辑task(任务);

274308a6dc2cd8370ffd45cae504031e.png

点击任务链接,配置Agent Job(代理工作),这里有两点需要注意:

1、代理池,说白了就是部署的地方,目前可以默认即可,以后需要用自己的服务器;

2、agent specification(代理规格),就是服务器规格配置;

5475fc28bbad2a9ca71672948a183416.png

请注意!这里默认的是vs2019规格,是windows环境的,如果不改的话,就会出现文章开头的错误,Docker不能运行的平台问题。所以直接选Linux即可

3$ 配置Task任务

点击上边的加号,筛选docker的task模板

765a3897ffdff1ceb5bd7147ea099b99.png

在新唤起的编辑页,编辑命令即可,Docker有三个类型,对应不同的命令类型,

我们第一步需要先删除旧的容器,所以直接用run命令即可,所以Task的版本用0.*:

5fbea3f520e80fb4fdaaf25bc65265f0.png

还是和上篇一样,需要选择容器Registry地址,然后就是配置一个action(行为),增加一个删除镜像的命令

rm -f xxxx

4$ 配置其他的Stage阶段

仿造上边第一步删除旧容器的阶段步骤,再建一个运行容器的Stage,整体流程一致,不再细说,配置图如下:

c6f6715b3cf16db03282c98975c616f1.png

用的是Task版本为1.*的Docker容器配置,使用自定义的DockerRegistry,配置镜像名,支持自定义,比如我加了前缀,也可以指定端口。

点击Save(保存),一套简单的持续集成管道就建好了

02aa96d4f23ddd557c2c5b7e4f6e3988.png

手动触发,create release,就可以看到详细的过程:

6d84b5992f2f66b074d246588f75102d.png

等一段时间后,就可以看到效果了,但是这样是不行的,因为我们还没有自己的IP。

5$ 其他问题

一、如何预览效果

上边我们说到了一个地方,就是代理池(Agent Pool),这个东西就是配置我们的服务器地址的,也就是宿主机,配置好以后就可以看效果了。

当然,也可以直接对接k8s,效果也是一样的,等我后续的文章吧。

二、如何自定义Docker Registry

目前这两篇文章可以看出来,用的是DockerHub作为服务仓库地址,如何使用自己的私库或者Azure上的呢,也是等我后续的文章吧。

下次再见咯。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297727.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

a*算法的时间复杂度_数据结构(1)——算法和时间复杂度

Data Structure1算法和时间复杂度01.什么是数据结构?程序设计 数据结构 算法数据结构是关系,是数据元素相互之间存在的一种或多种特定关系的集合。数据结构和算法凌驾于任何一种编程语言之上。02.逻辑结构和物理结构数据结构分为逻辑结构和物理结构。逻…

新开博客啦

其实决定开一个技术博客很久了,但一直都没找到合适的,博客园的背景确实不错,好像没有其他的广告,算是比较清新的一个网站了吧。 从这里开始,记录自己的学习心得,把自己的学习历程拿出来分享,与你…

C++的enum hack

从一个例子开始吧 class Game { private:static const int GameTurn 10;int scores[GameTurn]; };对于支持类内初始化的C编译器,这段代码可以编译通过。 但是较老的C编译器,可能不支持类内初始化,这样我们的静态常量,必须要在类外…

android vcard解析代码,Android使用vcard文件的方法简单实例

本文实例讲述了Android使用vcard文件的方法。分享给大家供大家参考,具体如下:FileOutputStream os null;try {os VCardTest.this.openFileOutput("Android.vcf", MODE_PRIVATE);} catch (FileNotFoundException e1) {// TODO Auto-generated…

学会了!如果认错人了,就像这样亲一口!

1 千万不要用曲面屏炒股▼2 谁掏钱多就听谁的准没错▼3 你和你妈的通话记录▼4 em......陷入沉思▼5 人类1994年拍摄到的冥王星人类2018年拍摄到的冥王星▼6 猫:你滚开!劳资不要运动!▼7 吃下去长肉了你来找我我给你送实验室研究研究▼…

短文件名漏洞如何修复_短文件名漏洞修复

短文件名漏洞其实在13年时还是很令人耳熟能详的,不过随着所在公司的编码语言转型,目前使用ASP.NET的新项目基本上没有了,而更多的是对原来的采用ASP.NET语言开发的项目进行维护或打个补丁。事出突然,12月的某个下午被项目组喊去帮…

在MinGW下使用DShow的方法

用MinGW编译DShow的东西,经常遇到没找到IBaseFilter的问题。本质上是MinGW的w32api并没有提供完整的DShow头文件所致。经过一番折腾,得到了下面的解决方案: 1. 从http://sourceforge.net/projects/mingw-w64/下载mingw-w64-headers&#xff0…

十个现象,识别程序员的“水份”

大家好,我是Z哥。下周五正好是国庆,我也给自己放个假,就不发文了。所以今天是节前最后一篇文章,先提前祝大家国庆快乐,可以好好放松一下。今天我们不聊干货了,聊点轻松的,来吐槽一下程序员的那些…

android 更改edittext内容,Android如何实时更改edittext的内容

为此使用TextWatcher。设置它的EditText用户类型:myEditText1.addTextChangedListener(new TextWatcher() {Overridepublic void afterTextChanged(Editable s) {String value s.toString();// Perform computations using this string// For example: parse the v…

python循环语句嵌套_Python 循环语句

循环语句 ​循环语句主要是用于解决某些重复的代码工作,使需要重复的代码只写一遍即可。 Python循环语句主要有两种:while循环和for...in...循环。 一、while循环 主要用于不确定循环的次数时,根据条件进行判断,条件成立&#xff…

linux部署的java应用,浏览器访问时,报域名解析错误

工作中,经常需要在Linux环境中部署Tomcat,配置java应用。在浏览器中访问应用时,却报域名解析错误,该怎么样解决呢? 解决方法:关闭防火墙 iptables -L -n    查看已添加的iptables规则 iptables -F se…

那些年,冒死拍过的老师逗逼搞笑照片 !

全世界只有3.14 % 的人关注了爆炸吧知识「你曾经拍到过老师哪个搞笑的瞬间」哈哈哈哈哈哈啊哈哈哈哈已笑疯了拍照的人最后真的都没有被打死吗_石小麦:这张?wanngsh-:当历史老师谈及日本女人2HyFMm:班主任扔实心球曹梓建&#xff1…

程序员吐槽_产品经理吐槽大会,程序员勿入

前两天网上有个程序员吐槽大会我看挺多人在转的,这么公开黑产品经理,除了娱乐效果之外,确实也反映了很多问题。作为一个前程序员,现产品经理,我觉得还是得说几句。首先以产品经理的角度自省,然后我再吐槽一…

记一次 .NET 某上市工业智造 CPU+内存+挂死 三高分析

一:背景 1. 讲故事上个月有位朋友加wx告知他的程序有挂死现象,询问如何进一步分析,截图如下:看这位朋友还是有一定的分析基础,可能玩的少,缺乏一定的分析经验,当我简单分析之后,我发…

(太棒了)程序员的十个层次 你属于哪一层?

http://developer.51cto.com/art/201011/233083.htm 转载于:https://blog.51cto.com/smasher/420147

60佳优秀的 Photoshop 网页制作教程【下篇】

Photoshop 作为网页设计利器,是网页设计师必备。曾经和大分享过几篇优秀的 Photoshop 网页制作教程,喜欢的人非常多。今天这篇文章继续向大家分享优秀的 Photoshop 网页制作教程。其实,网页设计并没有你想的那么难,相信看完这些教…

android studio 创建.9文件,自己使用Android studio创建.9(点9)图片

本来标题想写"Mac版Android studio创建.9图片",但是感觉区别应该不大,因为只需要拖拽一下鼠标就行了,键盘以及快捷键都不用不上。这篇文章其实也是自己看了其他文章后的一点补充,并不是所有人都会有的问题。既然是想标为…

java stream 求和_谈谈Java任务的并行处理

作者:ksfzhaohui前言谈到并行,我们可能最先想到的是线程,多个线程一起运行,来提高我们系统的整体处理速度;为什么使用多个线程就能提高处理速度,因为现在计算机普遍都是多核处理器,我们需要充分…

华为交换机不同网段互访_华为S5700系列交换机使用高级ACL限制不同网段的用户互访...

组网图形图1使用高级ACL限制不同网段的用户互访示例组网需求如图一所示,某公司通过Switch实现各部门之间的互连。为方便管理网络,管理员为公司的研发部和市场部规划了两个网段的IP地址。同时为了隔离广播域,又将两个部门划分在不同VLAN之中。…

现在的男生真的太惨了

1 做男生不容易啊2 这到底是被甲方怎样虐过3 暴风螺旋般的伤口撒盐式连环补刀来源:知乎4 说好的雪橇三傻呢?5 谁都别打扰我看电视6 正弦余弦的空间展示7 这是什么原理?你点的每个赞,我都认真当成了喜欢