当前位置:首页 > 电脑常识 > 正文

聊一聊基于Docker的连续构建实现 8090安适门户

11-21 电脑常识

连续集成是一种软件开发实践。在一个团队中开发人员经常会对他们的事情进行集成,这个频率凡是为每人每天至少集成一次,这也就意味着一个团队每天可能会面临着多次集成。

在进行集成时,团队成员会通过自动化地构建,包孕编译、颁布、自动化测试,来验证。在这个过程中团队成员可以尽快地发明集成错误,使团队能够更快地开发内聚的软件。

基于此,一般的互联网公司或者开发团队城市有本身的连续集成平台或者工具,而开源的连续集成工具如 jenkins,teamcity,gitlab ci 等都供给了连续集成的成果。

但这些工具的使用一般都较为庞大,流程编排会对照长。

而 Docker的存在使得连续集成开脱了以往买通环境、资源申请、软件部署等带来的痛苦,可以越发快速便利地对既有事情成就进行连续集成。

基于Docker的连续构建

一般来讲,用户往往会选择对代码货仓的某一些特定分支进行连续集成,从而快速地对当前代码进行验证。

而在连续集成中,连续地对代码进行构建是整个连续集成的根本。

目前,大部分公司都是基于 mvn和 ant等编译打包工具来实现内部的编译构建处事。公司使用本身的 mvn等工具对货仓进行编译构建不存在任何问题,但是编译后的可执行文件分发与运行却对照庞大。

通例的做法是通过 SCP脚本传输,或者内部开发 agent等工具用于可执行文件的部署,但这增加了软件开发部署的价钱,尤其对付中小型公司,就需要本身研发部署工具。而且:

在公有云平台如果要供给一个连续集成的构建处事给用户,会面临如何获取用户的可执行文件并进行运行的问题;

需要部署相关环境,好比一个 tomcat应用需要安置 jdk以及环境变量,还有其他的用户依赖组件等。

而一个基于 docker实现连续构建的平台可以很便利地解决上述问题:

- docker通过镜像来进行分发,不只开脱了执行文件分发的问题,也解决了环境问题(docker不依赖于具体环境);

- docker通过 dockerfile来进行构建,给了用户很大的编译自由,用户可以很便利地安置环境及相关软件;

- docker运行非常快速,一台宿主机可以运行多个 docker容器。

网易蜂巢的连续构建实现

接下来介绍一下蜂巢的连续构建实现以及具体的使用要领。

用户可以把代码托管在 github或者 gitlab等代码货仓,通过使用网易蜂巢的连续集成处事,实时快速地对代码进行编译和打包生成镜像。对付镜像的颁布运行,用户可以在蜂巢部署镜像,也可以从蜂巢镜像货仓拉取镜像到其他撑持 docker的环境进行部署。

连续构建处事主要包孕以下模块:

oauth2模块。用户 oauth2绑定,绑定用户身份;

hook模块。hook处事用于监听用户的代码 commit;

构建模块。连续构建处事基于 dockerfile,用于镜像的构建;

镜像货仓。镜像货仓用于镜像的存储,漫衍式东西存储解决文件的高可用;

callback回调,callback用于镜像元信息的存储;

网易蜂巢连续构建系统设计图如下所示:

聊一聊基于Docker的持续构建实现 8090安详门户

那么,如何实现整个构建的流程?用户可以登录网易蜂巢,进入镜像货仓进行以下操纵:

第一步:创建镜像货仓

Docker 基于镜像来进行分发,创建镜像货仓用来撑持连续构建。

镜像货仓主要用于存储镜像,网易蜂巢镜像货仓给与基于 nos的漫衍式东西存储,数据连结多副本,解决了磁盘坏失导致用户镜像丢掉的问题。

如下图创建了一个 testci 1的镜像货仓用来撑持连续集成。

聊一聊基于Docker的持续构建实现 8090安详门户

第二步:设置代码货仓和镜像货仓的关系

通过 github的 api用户可以获取 github下的所有代码货仓来进行选择,可以选择在某个货仓的某一个分支或者 tag有提交的情况下触发连续构建。

如下图,用户选择了基于 citest的 dev分支进行连续构建。

像这样,用户每次有 commit push到代码货仓城市触发相应的连续构建。

第三步:触发连续构建

在相应的连续构建分支进行代码提交,从而触发连续构建。

如下图在代码货仓中通过 git简单的增加了一个 txt文件,并提交到 github。

聊一聊基于Docker的持续构建实现 8090安详门户

第四步:代码构建

温馨提示: 本文由杰米博客推荐,转载请保留链接: https://www.jmwww.net/file/pc/13168.html

博客主人杰米WWW
杰米博客,为大家提供seo以及it方面技巧喜欢的朋友收藏哦!
  • 11365文章总数
  • 1378074访问次数
  • 建站天数
  •