您现在的位置是:首页 > 文章详情

k8s与CICD--一个完整的drone demo

日期:2018-12-16点击:524

前言

在上一篇文章中,我们只是简单介绍了一下drone的部署。接下来会逐步深入 介绍,后期也会翻译一些官方的文档以及我在实际工作中用到的插件的介绍。这篇文章,主要是一个完整的drone demo。pipeline中,包括了git clone 拉取代码,go build 构建,生成docker镜像并推送到harbor,notify 通知。关于通知这块,官方提供的插件都是一些西方喜欢用的即时通讯或是协作工具,比如telegram,slack,line等。所以在后期,我计划写一个微信或是钉钉的插件。

.drone.yml

先上配置文件,有一个大概的认识,再逐一解读。

workspace: base: /go path: src/gogs.xxx.com/baa-cicd pipeline: build: image: golang:latest commands: - go build -o baa-cicd publish: image: plugins/docker registry: registry.xxx.com repo: registry.xxx.com/test/baa-cicd tags: latest secrets: [ docker_username, docker_password ] insecure: true notify: image: plugins/slack webhook: https://hooks.slack.com/services/xxx/xxx/xxx channel: dev template: > {{#success build.status}} build {{build.number}} succeeded. Good job. {{else}} build {{build.number}} failed. Fix me please. {{/success}}

workspace

工作空间,就是一个可以被pipeline各个阶段共享volume和工作路径的东东,好处就是避免了各种cd和拷贝。由于该demo项目使用golang。所以设置路径是/go/src/gogs.xxx.com/baa-cicd。

clone

git plugin 是一个默认的插件,即使不配置,drone会自动配置,用来拉取代码。

build

由于是golang项目。一个命令go build即可。当然由于项目比较小,所以我提前用glide将依赖的包安装到vendor目录下了。否则应该定制自己安装好glide的镜像,或是在go build命令之前,执行 glide install 命令。当然此处也可以增加go test 对项目进行测试。

build: image: golang:latest commands: - glide install - go build -o baa-cicd - go test -v

docker build

构建docker镜像阶段,我们这边用harbor搭建了自己的私有registry。此处需要注意的是secrets: [ docker_username, docker_password ]这里的设置。实际上有一些场景是,为了安全考虑,不想把用户名和密码暴露在配置文件中,drone提供了secret ref的用法。在drone ui界面配置secret,如下:

c8147649b554497d53112709a1f17e16814e8c78

然后在.drone.yml 里通过secrets选项进行关联即可。

当然这一步前提是要提供一个Dockerfile文件。

FROM alpine RUN apk add -U tzdata RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime COPY baa-cicd /usr/local/bin/baa-cicd EXPOSE 13123 ENTRYPOINT ["baa-cicd","--port=13123"]

notify

在通知这块,我没有使用email插件,恰好之前加入了istio的slack,所以自己建立了slack中的workspace,然后在其中建立一个channal,命名dev。
此处需要说明的是webhook的设置。具体可以查看slack官方文档。设置成功以后,
然后拷贝 Webhookurl即可。当然可以定制自己的头像以及app名。我这边都是默认的。

f8eeeec9df311dedb5c423eb37c2fb86b4aae106

最后实际收到通知效果:

e9782834bf84bc0b5efd026dce9210253f93aac2

demo 源码

具体代码,我放到了github上。大家直接git clone 下来即可。
最后放一张整个build的图。

e85294aa63c091d8f7d3ac0185df9e06bf289aab
本文转自中文社区- k8s与CICD--一个完整的drone demo

原文链接:https://yq.aliyun.com/articles/679902
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章