【Azure + Core】实现CI/CD(一)构建镜像并推送仓库
(海上生明月,天涯共此时)
今天是农历八月十六,大家中秋节快乐!
放了三天假,和家人整理下屋子,打扫下卫生,闲着无聊就研究点儿新东西。最近一直再看DevOps相关的内容,自从开始学习Docker以来,DevOps一直是比较感兴趣的事情,今天就给大家简单演示一下,如何使用Azure来实现CI操作——将Github上的代码,自动的构建镜像,并推送到DockerHub上(持续集成)。当然,私库也是可以的。CD相关的内容,我还在看,下篇会讲讲,至于是部署到自己的服务器,还是部署到K8s里,看到时候的设备咯。
每个人应该都是可以的,注册一个Azure账号就可以了,我是国际版的,区别就是域名是https://dev.azure.com,只要有梯子科学上网就行,否则会很慢。
1$ 准备账号
首先,Azure账号就不说了,硬性标准。
其次,既然是要处理CI/CD,肯定需要源代码管理了,想必每个人都有GitHub的账号吧,用GitHub也是可以的,有时候我也会使用Azure上的代码库,毕竟是一体化的,整体操作起来比较顺畅。
如果已经在GitHub上已经有项目了,又不想迁移到Azure上,那也可以的,直接建一个Pipeline就行了,我这里已经建了三个了:
我建Pipeline的目的主要有两个:
1、保证代码的准确性,比如有时候在地铁上想修改一个代码,又没有编译器,一般就直接在Github上修改,然后提交,让CI来检查;
2、可以构建镜像并推送到仓库,甚至还可以下一篇文章说到的直接部署。
真正意义上实现,修改代码 == 预览效果 的目的。
Github的Action也有这样的功能,实现思路大致一样,只不过在CD(持续部署上),不太好操作,具体可以参考我Blog.Core项目的代码,这里不细说。
2$ 连接服务
新建一个Pipeline用来实现持续集成,需要一个DockerRegistry服务,要不然只能到Build这一步,也就只能来校验代码是否正常,不能推送镜像,更别说后续的CD操作了。
一、项目设置
二、在Pipeline中,连接服务
点击新建服务连接按钮
选择Docker Registry选项
选择Registry类型,输入DockerID和密码,给这个连接取一个名字,点击Save按钮。
一个服务连接就创建完成了,在以后的CI操作中,会用到这个连接。
用户名和密码要正确,否则会提示错误,可以点击Verify进行校验
3$ 新建Pipeline
选择新建Pipeline,勾选Github,如果你是在Azure中的,可以直接第一个,我这里勾选GitHub,基本都是采用YAML的方式
选择一个自己的项目,这个时候可能需要Github二次密码确认,输入密码即可
配置Pipeline,一般都是直接点击Docker即可
配置YAML文件,默认会创建一个,只有build操作的,可以去掉那个task,在后侧选择一个docker的Assistant,这里都有模板
也可以直接点击左侧代码里的那个settings,会自动唤起后侧编辑窗口
其他都是默认,只需要勾选刚刚的服务连接就行,然后输入自己的容器仓库名,请注意,需要带上镜像前缀名称,也就是DockerID,点击Add按钮,左侧就同步变化了。
然后点击右上角的Save and run按钮,一个完成的CI操作就完成了,并且会把代码给同步到GitHub上:
然后可以在GitHub上看到推送的镜像
4$ 其他内容
新的每次Pipeline执行,都会有邮件的返回结果,如果是成功与否,这个还是很方便的
可以直接点击地址,查看结果。
打完收工,下一篇,我们来看看如何做CD操作。
预告,在发稿时,CD已经研究七七八八了,总体感觉良好,且很有意思,值得研究下:
不仅有直观的看板界面,更有详细的日志和操作说明,方便定位任何问题,比如我随便写一个错误,就会看到错误日志(具体问题,下篇解析):
【Azure + Core】实现CI/CD(一)构建镜像并推送仓库相关推荐
- IDEA中使用Docker插件构建镜像并推送至私服Harbor
IDEA中使用Docker插件构建镜像并推送至私服Harbor 一.开启Docker服务器的远程访问 1.1 开启2375远程访问 1.2 添加harbor镜像配置 1.3 重启docker服务 二. ...
- Harbor镜像库搭建以及如何在idea上构建镜像并推送Harbor
一:Harbor镜像仓库搭建 1.软件准备: Docker 版本:20.10.6 Docker-compose 版本:v.2.4.0 2.docker 安装 下载docker-ce源到linux: c ...
- 1.2 SpringBoot构建Docker镜像并推送到Harbor
1.修改pom 文件中 引入 dockerfile-maven-plugin 插件 1.1 properties 标签中增加如下: <!--项目名,需要和Harbor中的项目名称保持一致 --& ...
- Azure DevOps+Docker+Asp.NET Core 实现CI/CD(三.实现CD持续部署管道)
前言 本文主要是讲解如何使用Azure DevOps+Docker 来实现持续集成Asp.NET Core项目(当然 也可以是任意项目). 上一篇: Azure DevOps+Docker+Asp.N ...
- Azure DevOps+Docker+Asp.NET Core 实现CI/CD(二.创建CI持续集成管道)
前言 本文主要是讲解如何使用Azure DevOps+Docker 来实现持续集成Asp.NET Core项目(当然 也可以是任意项目). 上一篇: Azure DevOps+Docker+Asp.N ...
- Gitlab+Jenkins+Artifactory, CI/CD自动构建发布环境搭建使用实践
CI/CD自动构建发布环境搭建使用实践 通过C/C++的cmake工程示例项目,构建Gitlab+Jenkins+Artifactory自动构建发布环境.其中 Gitlab提供源码仓库功能,通过web ...
- springboot学习(六十七) springboot项目通过gradle-docker-plugin插件构建为doker镜像并推送至镜像私服
文章目录 前言 1.使用gradle部署springboot项目 2.Docker开启远程访问 3.安装镜像私服Harbor 4.gradle中配置插件 前言 springboot从2.4默认提供了打 ...
- maven集成docker插件进行打包镜像并推送私服
使用maven进行集成docker打包成镜像以及推送到docker私服 先水几句 我不会开场啊-默默无闻的送码人.不是吧不是吧.现在还有人用maven打包,然后手动上传jar.然后进行部署吗?你out ...
- 使用dockerfile自定义Docker镜像并推送到dockerhub
Docker自定义镜像并推送到dockerhub 一.B要条件 二.选择一个操作系统作为基础环境 三.创建dockerfile 四.使用dockerfile构建自己的docker镜像 五.定义要推送的 ...
最新文章
- 《机器学习》、《算法数据结构》、《LeetCode原创题解》开放下载!
- 皮一皮:外语学的好,就是这么溜~
- redis主从架构宕机问题手动解决
- 3月上旬我国域名增长平稳 新增92059个域名
- PAT (Basic Level) 1075 链表元素分类(模拟)
- JavaScript-内存空间
- 电脑机器人_【头条】厚积薄发!卡达电脑智能机器人之纸箱码垛机赋能智能工厂...
- 3-7:类与对象下篇——static成员
- [CTO札记]谁在使用SNS
- Python 字符串与二进制串的相互转换
- linux终端<Terminal>使用ping
- 从入门到入土:[SEED-Lab]MD5碰撞试验|MD5collgen实验|linux|Ubuntu|MD5 Collision Attack Lab|详细讲解
- PyQt4开发环境搭建指导
- frame、bounds表示大小和位置的属性以及center、position、anchorPosition
- Eureka、Zookeeper、Consul异同点
- 计算机算法类毕业论文,算法论文范文 算法类有关大学毕业论文范文3000字
- 简要罗列通过Allegro绘制的PCB封装步骤
- 小型矢量图标于前端页面如何应用
- 《跟任何人都聊得来》读书笔记
- 手机查看python代码_30个极简Python代码,拿走即用