往期内容连接
个人博客即将同步至腾讯云+社区,邀请你们一同入驻:
https://cloud.tencent.com/developer/support-plan?invite_code=1uzymsc0hstza
Tencent Hub是腾讯出品的DevOps服务。主要提供多存储格式的版本管理,支持Docker Image、Binary、Helm Charts 等多种类型文件。同时提供 DevOps 工做流的编排引擎,而且支持编排 DevOps 工做流,以打造更强的持续集成与持续交付力,加快软件迭代发布速度。html
相比Azure DevOps,Tencent Hub主要面对国内开发者,所以在CI这块,更容易水土相符。git
在开始以前,咱们先得开通Tencent Hub 服务。这些前置条件咱们就再也不赘述了。github
在本篇教程中,咱们使用Tencent Hub工做流来自动拉取代码而且构建、推送镜像到容器服务镜像仓库,而且经过镜像触发器来自动触发服务更新。web
使用Tencent Hub的话,整个配置过程比较简单,主体配置流程以下所示:docker
在开始以前,咱们须要在Tencent Hub上建立一个项目仓库,以下图所示:运维
建立完成后如图所示:gitlab
至此,项目仓库建立完成。post
注意:Tencent Hub项目仓库实质上是一个镜像仓库,能够存放咱们构建的docker镜像。测试
仓库建立完毕,接下来咱们须要进行代码库受权,以便工做流可以获取代码以及自动触发构建。首先,咱们先点击设置界面,打开以下所示的界面:ui
如图所示,代码库受权支持github、gitlab、码云和工蜂,这里笔者选择了码云,用于演示。
虽然咱们已经建立Tencent Hub的镜像仓库,可是为了方便,笔者建议你们还建立腾讯云容器服务的镜像仓库,以便使用默认的触发器来触发服务更新。相比使用工做流来实现,更加稳定和易于维护。腾讯云容器服务镜像仓库界面以下所示:
建立以后,咱们就能够得到完整的镜像仓库地址,以下图所示:
刚才,咱们已经建立了Tencent Hub项目仓库了,首先咱们须要点击项目名称进入详细界面:
而后点击【工做流】选项卡打开工做流界面:
点击【新建】按钮,咱们能够建立本身的工做流。
Tencent hub提供了不少工做流组件,基本上可以知足咱们的须要,以下图所示:
接下来,咱们一块儿来建立一个简单的工做流,主要包括如下步骤:
在Tencent Hub上,工做流设计界面以下所示:
首先,建立工做流时,咱们须要进行以下所示的设置:
这里,咱们勾选develop和master分支推送时触发工做流。
这里,咱们须要借助工做流组件 hub.tencentyun.com/tencenthub/thub_docker_builder 来完成进行过构建。
这里,咱们经过YAML文件来查看具体的配置参考:
组件参数说明以下所示:
Tencent Hub的工做流组件均已开源,咱们也能够直接查看源代码(有时候若是开发文档没有及时更新,照着文档配置可能会入坑),以下图所示:
注意:这里笔者追加了标签,使用到了分支名称。也就是develop分支的代码构建的镜像会打上develop-latest的标签,master相似,以便于服务部署时可以区别开来。
镜像构建成功以后,咱们须要将镜像复制到容器服务镜像仓库。这里特此说明一下,之因此添加此步骤,是由于经过容器服务的镜像仓库的触发器触发服务更新更稳定以及更易于维护。事实上,你们也能够经过工做流来完成服务的更新,可是相关参数的配置颇为麻烦,并且很容易配错。
这里,咱们用到的组件为:hub.tencentyun.com/tencenthub/copy_image
组件说明以下所示:
配置参考以下所示:
镜像复制完成,咱们但愿可以在相关的开发组、运维组接收到消息。Tencent Hub这边也有成熟的轮子——hub.tencentyun.com/tencenthub/notice_dingding。具体以下所示:
相关的配置也比较简单,不过咱们须要建立一个钉钉自定义机器人:
而后,咱们就可使用此工做流组件进行配置:
至此,整个工做流就配置完成了。固然,咱们也能够在工做流的结束节点添加webhook通知,只是无法设置消息模板,以下所示:
至此,整个工做流就介绍完毕。你们也能够根据本身的须要来设计符合本身要求的工做流。
当代码提交时,就会自动触发构建,咱们在工做流界面能够看到当前状态以及执行历史:
同时,还能够查看日志历史:
Tencent hub工做流咱们就先介绍到这里。
接下来,咱们须要切到腾讯云的容器服务管理面板。
首先咱们须要建立集群而且添加节点:
而后建立服务(咱们能够基于镜像构建服务,也能够直接建立服务):
接下来,咱们须要设置镜像触发器,以下所示:
注意:咱们能够经过不一样的标签触发不一样的服务更新,好比develop表明开发环境,master表明正式环境。
此节内容咱们在前面的教程已经讲述过,这里就不赘述了。整个构建过程,咱们能够添加一些webhook来进行消息集成,方便开发团队知晓相关状况以及测试人员进行测试。消息集成这块,咱们再经过后续的教程来分享咱们团队的消息集成,你们能够关注咱们的公众号“magiccodes”来查看所有教程和文章。
原文出处:https://www.cnblogs.com/codelove/p/10244163.html