【Azure + Core】实现CI/CD(一)构建镜像并推送仓库

4f0945ff22eed73ba448e5e569a44c5a.png

(海上生明月,天涯共此时)

今天是农历八月十六,大家中秋节快乐!

放了三天假,和家人整理下屋子,打扫下卫生,闲着无聊就研究点儿新东西。最近一直再看DevOps相关的内容,自从开始学习Docker以来,DevOps一直是比较感兴趣的事情,今天就给大家简单演示一下,如何使用Azure来实现CI操作——将Github上的代码,自动的构建镜像,并推送到DockerHub上(持续集成)。当然,私库也是可以的。CD相关的内容,我还在看,下篇会讲讲,至于是部署到自己的服务器,还是部署到K8s里,看到时候的设备咯。

每个人应该都是可以的,注册一个Azure账号就可以了,我是国际版的,区别就是域名是https://dev.azure.com,只要有梯子科学上网就行,否则会很慢。

1$ 准备账号

首先,Azure账号就不说了,硬性标准。

其次,既然是要处理CI/CD,肯定需要源代码管理了,想必每个人都有GitHub的账号吧,用GitHub也是可以的,有时候我也会使用Azure上的代码库,毕竟是一体化的,整体操作起来比较顺畅。

254f1c9bc3603f33f839580add706da2.png

如果已经在GitHub上已经有项目了,又不想迁移到Azure上,那也可以的,直接建一个Pipeline就行了,我这里已经建了三个了:

582d0a0f4b74cf0d651bc026eb1001ab.png

我建Pipeline的目的主要有两个:

1、保证代码的准确性,比如有时候在地铁上想修改一个代码,又没有编译器,一般就直接在Github上修改,然后提交,让CI来检查;

2、可以构建镜像并推送到仓库,甚至还可以下一篇文章说到的直接部署。

真正意义上实现,修改代码 == 预览效果 的目的。

Github的Action也有这样的功能,实现思路大致一样,只不过在CD(持续部署上),不太好操作,具体可以参考我Blog.Core项目的代码,这里不细说。

b811295826b88633585af595306b9ddc.png

2$ 连接服务

新建一个Pipeline用来实现持续集成,需要一个DockerRegistry服务,要不然只能到Build这一步,也就只能来校验代码是否正常,不能推送镜像,更别说后续的CD操作了。

一、项目设置

ca8020647d28b46972fc49eae5f6c82f.png

二、在Pipeline中,连接服务

a1e05626dd8bc1bcfc953626f8dd185c.png

点击新建服务连接按钮

6efa6a499b0e6e01e7cbce0761b1ceb5.png

选择Docker Registry选项

c8c67460d01daa739c94d248e5c15e33.png

选择Registry类型,输入DockerID和密码,给这个连接取一个名字,点击Save按钮。

8569730fea024b71d7617419bbe34b0d.png

一个服务连接就创建完成了,在以后的CI操作中,会用到这个连接。

6afc5c4184acf6d68f59d0cfcfc77a05.png

用户名和密码要正确,否则会提示错误,可以点击Verify进行校验

db52fc00c599b58c054a761d9bf554f5.png

3$ 新建Pipeline

选择新建Pipeline,勾选Github,如果你是在Azure中的,可以直接第一个,我这里勾选GitHub,基本都是采用YAML的方式

7bf0cb17f6d455d7de45c5bba9563caa.png

选择一个自己的项目,这个时候可能需要Github二次密码确认,输入密码即可

a71e8e8c4d58749c14bb10d8df70ba56.png

配置Pipeline,一般都是直接点击Docker即可

af0b6e325cfab384b2bd715803138469.png

配置YAML文件,默认会创建一个,只有build操作的,可以去掉那个task,在后侧选择一个docker的Assistant,这里都有模板

8a3036fa4fcac01a71d15c64016d27f8.png

也可以直接点击左侧代码里的那个settings,会自动唤起后侧编辑窗口

a2b643c1ef76d86455acf0d832227a7c.png

其他都是默认,只需要勾选刚刚的服务连接就行,然后输入自己的容器仓库名,请注意,需要带上镜像前缀名称,也就是DockerID,点击Add按钮,左侧就同步变化了。

2b8900a5a6929df67deafa8e0be0a098.png

然后点击右上角的Save and run按钮,一个完成的CI操作就完成了,并且会把代码给同步到GitHub上:

6dc3898ff7260842211b67f71d6fb83b.png

88ac05806c9a5d8dc6a98fbe26e46fdd.png

然后可以在GitHub上看到推送的镜像

3c40c674ccb67c3bbadfb475ca5e0321.png

4$ 其他内容

新的每次Pipeline执行,都会有邮件的返回结果,如果是成功与否,这个还是很方便的

0e5952159a881d66e5c973b9f775637c.png

可以直接点击地址,查看结果。

46ddd98fcdf5c25c34de078b7a894bfa.png

打完收工,下一篇,我们来看看如何做CD操作。

预告,在发稿时CD已经研究七七八八了,总体感觉良好,且很有意思,值得研究下:

740f5b453a2db471bbdcdb3846cecc8c.png

不仅有直观的看板界面,更有详细的日志和操作说明,方便定位任何问题,比如我随便写一个错误,就会看到错误日志(具体问题,下篇解析):

d6db3dcd774820abe9fa8e33825b87ae.png

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

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

相关文章

detectron2训练自己的数据集_keras版MaskRCNN来训练自己的目标检测数据集

向AI转型的程序员都关注了这个号👇👇👇机器学习AI算法工程 公众号:datayx一、运行环境的安装:1、下载好cuda9跟cudnn7,然后在安装好后,cuda其会自动添加到环境变量里,所以使用kera…

Win7系统中必需记住的14个常用快捷键

在使用电脑时,多多少少地都会用到一些快捷键,尤其是在玩游戏,或使用一些软件时。快捷键不仅方便,如果用的好,甚至可以大大提升我们的工作效率。而且,快捷键不仅可以在软件中使用,在Win7系统中其…

git 删除远程分支

2019独角兽企业重金招聘Python工程师标准>>> git branch -r -d origin/dev git push origin :dev 注意: git push origin 后面有个空格 转载于:https://my.oschina.net/u/1176097/blog/391573

我看过《隐秘的角落》才知道,理科生有多可怕!

全世界只有3.14 % 的人关注了爆炸吧知识最近,大家都被《隐秘的角落》刷屏了吧?但吃瓜、看瓜的背后,我看到了理科生的可怕之处。数学课上,为了暗示朱朝阳自己杀人其实是因为被背叛,张东升利用笛卡尔在爱情里或美好与悲惨…

mysql sleep详解_sql注入详解(二)

sql注入详解4、检测方法首先是判断能不能进行sql注入是哪种sql注入(1)数字型?id1 and 11 返回成功?id1 and 12 返回失败这说明是数字型注入,或者叫整型注入此时后台是select * from where id x and 11select * from where id x and 12显然一个判断为真&#x…

Visual Studio的奇淫技巧,你知道多少?

如果你像我一样,或许你也沉迷于开发者工具。这就是我喜欢 Visual Studio 的原因之一——它有无数的生产力技巧。这篇文章将展示五个这样的技巧,这些技巧对我每天的工作都有帮助。请注意,这些仅适用于 Visual Studio。有像ReSharper[1]、Rosly…

promise的状态以及api介绍_前端 api 请求缓存

作者:wsafighthttps://github.com/wsafight/personBlog/issues/2web开发时,性能都是必不可少的话题。对于webpack打包的单页面应用程序而言,我们可以采用很多方式来对性能进行优化,比方说 tree-shaking、模块懒加载、利用 extrens…

哎,累死了~..~

下午睡觉一起床,打开博客园时,才发现后台原来可以用CSS来弄主页啊,我个猪头,才发现。。。弄了一下午,终于搞了个像样的,嘿嘿,浪漫典雅,不失严谨,有点类似Metro风格&#…

RedHat el5.0 搭建 Postfix 邮件服务器系统一

RedHat el5.0 搭建 Postfix 邮件服务器系统 (postfixcyrus-sasl2courier-authlibcourier-imapextmailmaildrop) 一、系统环境 操作系统:rhel-5.2 所需软件(按网上以前的文档,好多版本都找不到&#xff…

C# 数据结构--排序[下]

希尔排序&#xff08;Shell Sort&#xff09; 排序思想&#xff1a; 先取一个小于n的整数d1作为第一个增量&#xff0c;把文件的全部记录分组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序&#xff1b;然后&#xff0c;取第二个增量d2<d1重复上述的…

奥林匹克数学竞赛教练员汇编,最牛奥数资料全集!

全世界只有3.14 % 的人关注了爆炸吧知识1985年&#xff0c;由北京大学、南开大学、复旦大学和中国科技大学四所大学倡议&#xff0c;中国数学会决定&#xff0c;自1986年起每年一月份&#xff08;第29届起改为每年12月举行&#xff09;举行全国中学生数学冬令营&#xff0c;后又…

成长 | 《大厂晋升指南》学习总结(中)

【学习总结】| Edison Zhou上一篇总结了晋升体系和职级详解&#xff0c;本篇总结面评技巧和学习方法。温馨提示&#xff1a;文中的贴图均来自极客时间《大厂晋升指南》课程。1面评技巧PPT框架华仔在多年的晋升答辩评委经历中总结了晋升答辩PPT的3个常见误区&#xff1a;&#x…

window.location.reload()会掉参数吗_iPhone手机电量不够用,你真的会用苹果吗?设置好这几个就OK了!...

用过iPhone的小伙伴都知道iPhone手机里的IOS系统&#xff0c;正是因为IOS系统独特的流畅度吸引了很多的用户成为了果粉。但是如今在中国市场上&#xff0c;iPhone手机在市场上占据的份额一年比一年低&#xff0c;近几年新兴崛起的国产手机华为、VIVO、小米以及年青人品牌的魅族…

Linux 下 MySQL 启动与关闭 说明

一.启动1.1 MySQL 进程可以用ps 命令查看进程&#xff1a;[rootrac2 ~]# ps -ef|grep mysqlroot 2161 1 0 09:38 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe--datadir/var/lib/mysql --pid-file/var/lib/mysql/rac2.pidmysql 2418 2161 0 09:38 ? …

历史上有哪些看似经PS处理实则没有的照片?

全世界只有3.14 % 的人关注了爆炸吧知识使用过xp系统的朋友&#xff0c;对这张图&#xff0c;肯定很是熟悉&#xff0c;毕竟是作为xp系统的经典桌面&#xff0c;名为Bliss。这张图是1996年在美国加利福尼亚州锁诺玛县&#xff0c;锁诺玛山谷南部靠近一家乳品公司旧址拍摄。摄影…

iNeuLink硬件网关与iNeuOS工业互联网操作系统互联互通应用案例

目 录1. 应用概述... 22. 模拟硬件设备配置... 23. iNeuLink硬件网关配置... 43.1 硬件介绍... 43.2 硬件网关配置... 44. iNeuOS工业互联网操作系统配置... 61. 应用概述有一个生产镍的矿业集团&#xff0c;要整合不同厂区的…

dubbo优势_Dubbo 迈出云原生重要一步 应用级服务发现解析

作者 | 刘军(陆龟) Apache Dubbo PMC概述社区版本 Dubbo 从 2.7.5 版本开始&#xff0c;新引入了一种基于实例(应用)粒度的服务发现机制&#xff0c;这是我们为 Dubbo 适配云原生基础设施的一步重要探索。版本发布到现在已有近半年时间&#xff0c;经过这段时间的探索与总结&a…

看了《隐秘的角落》才知道,掉头发有多可怕!10个掉头发最快的专业!快看看你中枪了没有!...

全世界只有3.14 % 的人关注了爆炸吧知识专业选得好秃头秃得早我爱学习&#xff0c;学习使我快乐我爱学习&#xff0c;学习使我进步我爱学习&#xff0c;学习使我美丽学习&#xff1a;我TM还能使你脱发呢我&#xff1a;港真现在上个大学不掉点头发都枉为一个真正的大学生上课与睡…

WPF企业内训全程实录(中)

摘要 WPF企业内训全程实录由于文章比较长&#xff0c;所以一共拆分成了三篇&#xff0c;上篇WPF企业内训全程实录&#xff08;上&#xff09;主 要讲了基础&#xff0c;这篇作为该实录的中篇&#xff0c;起着承上启下的作用,主要讲解开发模式、团队协作及应用框架。其实如果大家…

.Net Core with 微服务 - 可靠消息最终一致性分布式事务

前面我们讲了分布式事务的2PC、3PCTCC 的原理。这些事务其实都在尽力的模拟数据库的事务&#xff0c;我们可以简单的认为他们是一个同步行的事务。特别是 2PC,3PC 他们完全利用数据库的事务能力&#xff0c;在一阶段开始事务后不进提交会严重影响应用程序的并发性能。TCC 一阶段…