Drone服务初使用
概要
Drone是Go语言编写的,基于容器技术的CI/CD系统。是目前为止个人感觉最轻量级的CI/CD系统,使用本身非常方便容易。目前Drone文档严重缺乏,而且好多文档是之前历史版本的使用文档,所以在安装和使用时会有一些小麻烦,除去这些一切很舒服。前一篇已经写完如何安装Drone,本篇会以一个实例来讲一下,如何用Drone完成一个最简单Golang项目的部署。
激活指定项目
打开部署好的Drone页面:
搜索你要做自动化部署的项目(这儿是test-drone项目):
点击『ACTIVATE』进入:
激活成功进入配置页。注意,Project settings要选择Trusted,因为要挂载宿主机文件系统;其他按需要选择。
默认配置文件是.drone.yml, 一般也就用这个文件。到此项目激活成功,可以开始下一步行动了。
配置私钥
进入配置页面,输入Secret Name和对应的Secret Value后点击「ADD A SECRET」,就成功添加私钥
Docker Hub相关私钥
这儿要配置2个私钥,Docker Hub的用户名和密码,即执行docker login时要输入的用户名和密码
docker用户名对应key: docker_user docker密码对应key: docker_pass
DingTalk
本文使用钉钉的小机器人来做通知,这儿需要把钉钉的token也放到私钥中
钉钉token对应key: dingding
钉钉token获取方式:
钉钉组(3人可创建组) -> 组设置 -> 小组助手 -> 新增
选择「自定义」后成功创建助手,查看webhook,如:
https://oapi.dingtalk.com/robot/send?access_token=d4a22b306d1c15a9e80504087cde8e637b8c66fa024554ffef0926a4dea1xxxx
这儿的token=后面的64位字串就是要钉钉的token值
.drone配置
pipeline主配置
kind: pipeline type: docker name: demo-go # 指定项目名称
steps配置-编译
- name: 编译 image: golang:alpine # 本项目是golang项目, 所以使用go镜像 environment: CGO_ENABLED: "0" # 指定环境变量 commands: - go build -o test-drone # 执行编译命令
steps配置-构建镜像
- name: 构建镜像 image: plugins/docker # 构建docker镜像专用镜像 volumes: - name: docker # 挂载下面定义的Volumn path: /var/run/docker.sock # 与宿主机用同一docker settings: # plugins/docker用到的相关配置 username: from_secret: docker_user # alicloud指定的docker hub的用户名(前面配置) password: from_secret: docker_pass # alicloud指定的docker hub的密码(前面配置) repo: registry.cn-beijing.aliyuncs.com/zhaoweiguo/test # 要推送docker地址 registry: registry.cn-beijing.aliyuncs.com # 使用的docker hub地址 tags: ${DRONE_BUILD_NUMBER} # docker的tag值, 默认每次加1
steps配置-Kubernetes 部署
- name: Kubernetes 部署 image: guoxudongdocker/kubectl:v1.14.1 # 执行kubectl的镜像 volumes: - name: kube # 挂载下面定义的Volumn path: /root/.kube # 使用宿主机配置的kube配置 commands: # 把deployment.yaml中的#Tag修改为上面打包的docker的tag值 - sed -i "s/#Tag/${DRONE_BUILD_NUMBER}/g" deployment.yaml - kubectl apply -f deployment.yaml # 执行kubectl apply
steps配置-钉钉通知
- name: 钉钉通知 image: guoxudongdocker/drone-dingtalk # 钉钉通知专用镜像 settings: token: from_secret: dingding # 钉钉的token(前面配置) type: markdown message_color: true message_pic: true sha_link: true when: status: [failure, success] # 不管成功与否都发通知
要挂载的volumn:
volumes: - name: kube host: path: /tmp/cache/.kube # 注意: 需要提前把kube的配置信息放到指定目录 - name: docker host: path: /var/run/docker.sock
触发条件
trigger: branch: - master # master分支收到推送就触发
构建结果
把上面项目提交后,打开构建页面如下:
钉钉也收到通知:
因为没有输入正确的docker_username,所以这次部署失败了,但不影响大家对整体的了解。
说明
本文只是最简单的Go项目编译、构建镜像、部署到k8s以及最后的钉钉通知。只是为了讲解Drone的使用,省略了单元测试、集成测试、可用性测试等。源码参见:
Drone测试实例源码

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
微软发布 Windows XP 主题纪念毛衣:各种“致敬”堪称情怀满分
继去年推出“Windows 95”主题毛衣后,微软今年又推出了以 Windows XP 为主题的“丑毛衣”,之所以称为“丑毛衣”是因为微软在发布时自嘲地为其打上了 #WindowsUglySweater 的标签。 除毛衣外,今年幸运的用户还能收到类似于原版 Windows XP 的包装盒,盒子背面罗列了 Windows XP 的诸多功能,例如易于安装、用户界面友好、出色的联网性能以及安全可靠的体系结构等。 从开箱来看,Windows XP 主题毛衣巧思颇多,比如包装盒正面写着调侃开机画面的“Windows XP Pro-ho-ho-fessional”,下方是 Soft-wear Pack 2(version 2019),背面更是功能列表一样的文字画面。 打开盒子,毛衣还用纸巾包裹,纸巾也不一般,居然是经典的 Bliss(蓝天白云)壁纸打印。 遗憾的是,和去年一样,Windows XP 主题毛衣同样不对外发售,而是抽取幸运儿赠送。据说 Windows 95 毛衣仅仅限量 100 件,可谓稀少。 微软去年发布的“Windows 95”主题毛衣,集情怀、复古、潮流于一体:
- 下一篇
玩转阿里云函数工作流(一)——秒级定时触发器
前言 阿里云函数工作流 Function Flow(FnF),是一个用来编排分布式任务的 Serverless 云服务,方便用户将大型复杂的任务拆分为更小的子任务,用户可按需设计子任务之间的执行顺序和跳转流程,并可实时跟进子任务的执行状态和针对子任务设计错误处理。以此来简化业务开发的流程跳转、错误处理,让用户更聚焦于业务逻辑的开发。 阿里云函数计算 Function Compute(FC),旨在帮助用户采用弹性伸缩、动态分配资源的方式来执行业务函数。让用户无需购买部署服务器,无需考虑业务负载,就能快速搭建可处理高并发的后台服务。 函数计算定时触发器支持定时执行用户函数,目前定时粒度只支持分钟级别。本文介绍如何使用函数工作流来进一步的实现函数秒级定时触发。 整体框架 借助于 FnF 提供的 task 任务步骤、wait 等待步骤 和 foreach 并行循环步骤,很方便的实现对 FC 函数调用或定时调用,以下介绍如何实现秒级定时调用 FC 函数 timer-handler。 执行流程如下: FC 定时触发器分钟级别触发 timer 函数 timer 函数使用 FnF SDK 执行工作流 ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- MySQL8.0.19开启GTID主从同步CentOS8