超轻量级自动化部署神器Drone配合Gogs安装详细教程(图文教程)

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

前言

现在我们在日常开发或者生产环境中,往往会经常弄一套自动化部署方案来节约时间成本。现在比较流行的一种就是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
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值