使用Azure DevOps Pipeline实现.Net Core程序的CD
上一次我们讲了使用Azure DevOps Pipeline实现.Net Core程序的CI。这次我们来演示下如何使用Azure DevOps实现.Net Core程序的CD。 实现本次目标我们除了Azure DevOps外还需要:
上一次我们的CI实现了: 创建Docker镜像仓库我们生成的镜像需要有个存放的地方。各大云厂商其实都有这种服务,这次直接使用Docker Hub提供的公共仓库服务。 创建一个仓库名叫:az_devop_test。 创建Dockerfile我们的代码创建为镜像需要一个Dockerfile来描述如何构建这个镜像。在项目根目录下新建一个文件命名为Dockerfile注意不带任何后缀名。以下为Dockerfile的内容:
配置Servic Connections选择ProjectSetting菜单,选择Service connections。Service connections用来存储跟外部服务相关的账号密码等信息,这里我们需要配置2个service。
配置Docker Registry service我们的pipeline需要给Docker hub推送镜像,所以需要一些必要的信息,比如账号密码等信息。 点击"New Service"找到Docker Register项目点击下一步 选择DockerHub,填写对应的账号密码 配置SSH service我们的pipeline在完成镜像推送后需要通过SSH登录到主机运行命令把新的镜像跑起来。 填写主机IP端口等信息。 修改pipeline上次我们的pipeline已经定义好了CI的步骤,这次需要在上次的基础上继续完善CD的功能。 BuildAndPush Task找到上次的pipeline选择编辑功能,在右边的Task列表里找到DockerTask,点击出现配置界面 在Container register里选择前面在service connections配置的docker-hub服务。 repository填写我们在docker hub上新建的仓库:kklldog/az_devop_test 。注意:仓库名称要把用户名写全了不然推不上去。 tags填写:latest 。 command:选择buildAndPush 。build跟push本是两步操作,这里直接合并为一步。 SSH Task添加完BuildAndPush Task后同样的方法再次添加SSH Task。 SSH service connection里选择前面我们配置好的ssh service。 Run 这里选择Commands。 Commands 填写需要执行的命令:
简单解释下这个命令: 完整的pipeline到此我们的pipeline已经配置好了,以下是完整的pipeline.yml代码。
运行一下手动运行一个这个pipeline,点击pipeline可以看到实时的日志,等到最后可以看到每一步都成功了,说明我们的pipeline配置成功了。 访问一下容器对应的端口,我们的网站已经可以访问了。修改一下代码,然后提交,每次都会自动部署最新的代码到主机。 总结以上通过2篇文章简单的介绍了Azure DevOps Pipeline如何实现CICD功能。Azure DevOps Pipeline给我的感觉是比较易用的,配置yml其实都是图形化的上手难度会比较小。另外它跟Github有深入的集成,可以使用Github的账号直接登录。况且它还是个免费服务,大家可以试试。 关注公众号一起玩转技术(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |