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

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

放了三天假,和家人整理下屋子,打扫下卫生,闲着无聊就研究点儿新东西。最近一直再看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(一)构建镜像并推送仓库相关推荐

  1. IDEA中使用Docker插件构建镜像并推送至私服Harbor

    IDEA中使用Docker插件构建镜像并推送至私服Harbor 一.开启Docker服务器的远程访问 1.1 开启2375远程访问 1.2 添加harbor镜像配置 1.3 重启docker服务 二. ...

  2. Harbor镜像库搭建以及如何在idea上构建镜像并推送Harbor

    一:Harbor镜像仓库搭建 1.软件准备: Docker 版本:20.10.6 Docker-compose 版本:v.2.4.0 2.docker 安装 下载docker-ce源到linux: c ...

  3. 1.2 SpringBoot构建Docker镜像并推送到Harbor

    1.修改pom 文件中 引入 dockerfile-maven-plugin 插件 1.1 properties 标签中增加如下: <!--项目名,需要和Harbor中的项目名称保持一致 --& ...

  4. Azure DevOps+Docker+Asp.NET Core 实现CI/CD(三.实现CD持续部署管道)

    前言 本文主要是讲解如何使用Azure DevOps+Docker 来实现持续集成Asp.NET Core项目(当然 也可以是任意项目). 上一篇: Azure DevOps+Docker+Asp.N ...

  5. Azure DevOps+Docker+Asp.NET Core 实现CI/CD(二.创建CI持续集成管道)

    前言 本文主要是讲解如何使用Azure DevOps+Docker 来实现持续集成Asp.NET Core项目(当然 也可以是任意项目). 上一篇: Azure DevOps+Docker+Asp.N ...

  6. Gitlab+Jenkins+Artifactory, CI/CD自动构建发布环境搭建使用实践

    CI/CD自动构建发布环境搭建使用实践 通过C/C++的cmake工程示例项目,构建Gitlab+Jenkins+Artifactory自动构建发布环境.其中 Gitlab提供源码仓库功能,通过web ...

  7. springboot学习(六十七) springboot项目通过gradle-docker-plugin插件构建为doker镜像并推送至镜像私服

    文章目录 前言 1.使用gradle部署springboot项目 2.Docker开启远程访问 3.安装镜像私服Harbor 4.gradle中配置插件 前言 springboot从2.4默认提供了打 ...

  8. maven集成docker插件进行打包镜像并推送私服

    使用maven进行集成docker打包成镜像以及推送到docker私服 先水几句 我不会开场啊-默默无闻的送码人.不是吧不是吧.现在还有人用maven打包,然后手动上传jar.然后进行部署吗?你out ...

  9. 使用dockerfile自定义Docker镜像并推送到dockerhub

    Docker自定义镜像并推送到dockerhub 一.B要条件 二.选择一个操作系统作为基础环境 三.创建dockerfile 四.使用dockerfile构建自己的docker镜像 五.定义要推送的 ...

最新文章

  1. 《机器学习》、《算法数据结构》、《LeetCode原创题解》开放下载!
  2. 皮一皮:外语学的好,就是这么溜~
  3. redis主从架构宕机问题手动解决
  4. 3月上旬我国域名增长平稳 新增92059个域名
  5. PAT (Basic Level) 1075 链表元素分类(模拟)
  6. JavaScript-内存空间
  7. 电脑机器人_【头条】厚积薄发!卡达电脑智能机器人之纸箱码垛机赋能智能工厂...
  8. 3-7:类与对象下篇——static成员
  9. [CTO札记]谁在使用SNS
  10. Python 字符串与二进制串的相互转换
  11. linux终端<Terminal>使用ping
  12. 从入门到入土:[SEED-Lab]MD5碰撞试验|MD5collgen实验|linux|Ubuntu|MD5 Collision Attack Lab|详细讲解
  13. PyQt4开发环境搭建指导
  14. frame、bounds表示大小和位置的属性以及center、position、anchorPosition
  15. Eureka、Zookeeper、Consul异同点
  16. 计算机算法类毕业论文,算法论文范文 算法类有关大学毕业论文范文3000字
  17. 简要罗列通过Allegro绘制的PCB封装步骤
  18. 小型矢量图标于前端页面如何应用
  19. 《跟任何人都聊得来》读书笔记
  20. 手机查看python代码_30个极简Python代码,拿走即用

热门文章

  1. Qt经验积累:常见的驱动打包处理方法
  2. “一次编写,随处运行” Intel HTML5技术研讨会
  3. Android应用程序消息处理机制(Looper、Handler)分析(5)
  4. 45 | 打蛇打七寸:精准测试
  5. Spring Boot 2.x(六):优雅的统一返回值
  6. ubuntu安装chrome driver
  7. 详解go语言的array和slice 【二】
  8. 三种查看SqlServer中数据物理pge页的方法
  9. 媒体层图形技术之AssetsLibrary 学习笔记
  10. Hibernate注解之@Enumerated