前言
现在我们在日常开发或者生产环境中,往往会经常弄一套自动化部署方案来节约时间成本。现在比较流行的一种就是Gitlab+Jenkins实现方案,但是这种方案占用内存还是比较大,需要的服务器内存也得8G左右,不然很难流畅运行,而且部署起来也不快。最近小翔发现了一款神器 Drone ,轻量级的CI/CD工具,我拿来结合 Gogs 使用所消耗的内存占用都不到1G,这里就给大家聊聊这款工具。
Drone简介
Drone是一款基于go编写的容器技术持续集成工具,可以直接使用YAML配置文件即可完成自动化构建、测试、部署任务。
优势:
drone引入pipline的概念,整个build过程由多个stage组成,每一个stage都是docker。
- 各stage间可以通过共享宿主机的磁盘目录, 实现build阶段的数据共享和缓存基础数据, 实现加速下次build的目标
- 各stage也可以共享宿主机的docker环境,实现共享宿主机的docker image, 不用每次build都重新拉取base image,减少build时间
- 可以并发运行。多个build可以并发运行,单机并发数量由服务器cpu数决定。 由开发者负责打包image和流程控制。Docker-in-docker,这一点非常重要,一切都在掌握之中。相比jenkins的好处是,所有的image都是开发者提供,不需要运维参与在CI服务器上部署各种语言编译需要的环境。
是DevOps的最佳实践!
使用教程
因为本篇文章是用 Gogs 的git版本管理存储代码,安装可以参考我上一篇文章, Gogs安装部署
Drone下载安装
使用Docker安装几秒就完成
- 下载Drone和Runner的镜像
# Drone的Server
docker pull drone/drone:1
# Drone的Runner
docker pull drone-runner-docker:1
-
这里有个Server和Runner的概念,我们先来理解下;
-
- Server:为Drone的管理提供了Web页面,用于管理从Git上获取的仓库中的流水线任务。
- Runner:一个单独的守护进程,会轮询Server,获取需要执行的流水线任务,之后执行。
1. 安装 Drone server
docker run \
-v /www/wwwroot/data/docker/drone:/data \
-e DRONE_AGENTS_ENABLED=true \
-e DRONE_GOGS_SERVER=https://gogs.weiye.link \
-e DRONE_RPC_SECRET=dronerpc666 \
-e DRONE_SERVER_HOST=192.168.31.114:3080 \
-e DRONE_SERVER_PROTO=http \
-e DRONE_USER_CREATE=username:weiye,admin:true \
-e TZ="Asia/Shanghai" \
-p 3080:80 \
--restart=always \
--detach=true \
--name=drone \
drone/drone:1
-
这里的配置参数比较多,下面统一解释下;
-
- DRONE_GOGS_SERVER:用于配置Gogs服务地址,可以直接是IP
http://192.168.31.114:10080 - DRONE_RPC_SECRET:Drone的共享秘钥,用于验证连接到server的rpc连接,server
- DRONE_GOGS_SERVER:用于配置Gogs服务地址,可以直接是IP

文章介绍了轻量级CI/CD工具Drone,它是基于Go编写的容器技术持续集成工具,可通过YAML配置文件完成自动化构建等任务。文中详细说明了Drone的优势、下载安装步骤、使用方法、Drone.yml配置,还对常见问题进行答疑,最后总结其构建速度可优化,适合小团队。
&spm=1001.2101.3001.5002&articleId=119534170&d=1&t=3&u=d44d61022275491ea68ee663e7d54aaf)

被折叠的 条评论
为什么被折叠?



