Drone 基本原理和流程(二)

本文将用简单的方法介绍Drone的基本流程,给大家提供一个整体的概念,不做深入展开,后续文章会对各种细节从原理和代码角度深入研究。

Drone webhook 触发方式

Drone 整个buid流程是由scm(源代码管理工具)触发的,是由scm采用webhook的方式来触发执行的,

什么是webhook,webhook基本原理是什么:

webhook与异步编程中"订阅-发布模型"非常类似,一端触发事件,一端监听执行,一端是发起者,一端是执行者。或者理解为Webhooks是用户定义的HTTP回调(可以用js 的callback理解),它们通常由预定义的事件触发,例如用户push代码到对应的repo。

在Drone中scm(源代码管理工具)相当于发起者,当相关事件发生,如用户commit并push代码到repo中,源代码管理工具调用事先注册好的,在drone中预定义的web API,将数据(参数)传给web API并执行对应方法,触发整个build流程。

Drone build step 实际运行方式
  • Drone中所有step实际上都是在container中执行的(1.1 版本计划可以本地执行的step),用定义好镜像启动一个container,然后利用配置好的参数(用环境变量传入container)在container中执行相关命令,返回结果。

  • Drone实际是通过挂载 /var/run/docker.sock 实现和主机docker 守护进程进行通讯,实际调用docker API 实现对host主机的docker环境的使用和管理,如启动容器,缓存镜像等。

Drone 基本运行流程
  • Drone根据源代码管理工具webhook传来的数据,找到对应repo下边的drone.yaml文件,将drone.yaml文件中定义的 pipline解析成docker steps,实际就是把pipline中定义的step,解析成可以被docker API接受的参数格式,然后用这些参数,调用docker的API获取镜像、启动container并执行预定义命令,然后将container运行中log实时拉出(可以在web UI看到执行log),每一步执行完将返回的执行的结果(通过docker api返回的container的执行结果,成功或者报错),如果前一个依赖步骤执行失败后边就不会执行。drone在执行的过程中,会调用调用源代码工具的StatusService API,在源代码工具上加上pipline tag,来标识Drone的build状态。


    DF1C88D2-8C08-4293-B0F3-53A43EDD3973.png

    Drone在运行过程会把各种状态同步到数据库中,在build结束后会把在内存流式存储的log同步到数据库中。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352

推荐阅读更多精彩内容

  • CI/CD对开发团队的重要性 软件开发是是一个复杂的工业化流程,编码只是其中的一部分,CI/CD 使得开发流程更加...
    王司技术谈阅读 2,330评论 0 2
  • 开篇 使用开源工具的好处是,可以通过阅读源代码,深入了解工具的运行原理,可以更好的使用和掌握工具,遇到问题能更好的...
    王司技术谈阅读 1,524评论 0 1
  • LXC 容器的概念 •容器技术,也称为容器,是一种包装方法一个应用程序,使其可以运行,并与其他应用程序隔离过程。•...
    强出头阅读 922评论 0 1
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 124,716评论 2 7
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 6,042评论 0 4