Drone

drone - 图1

基于 DockerCI/CD 工具 Drone 所有编译、测试的流程都在 Docker 容器中进行。

开发者只需在项目中包含 .drone.yml 文件,将代码推送到 git 仓库,Drone 就能够自动化的进行编译、测试、发布。

Drone 他和大部分的CI工具一样分为server端和agent端或者说runner端,所以搭建它也分为搭建server端和agent端,但是有一个不好的地方就是,你在server端是看不到我这个server连接了几个agent,但是这个不是什么问题,因为drone会给你找到最合适的agent去编译,你只需要在.drone.yml文件中定义就好了

支持的平台

  • github
  • gitlab
  • gogs
  • gitea
  • bitbucket cloud
  • bitbucket server

搭建Drone

下载Drone镜像

  1. docker pull drone/drone:1

drone - 图2

为Gitlab安装Drone服务器

  1. 创建一个OAuth应用程序

drone - 图3

drone - 图4

启动容器

docker run \
  --volume=/root/docker/drone:/data \
  --env=DRONE_GITLAB_SERVER=https://gitlab.com \
  --env=DRONE_GITLAB_CLIENT_ID=52c329868f2b70f2f40f50e56e33b3db61ec5afc1faaf615952a5f1feb8ad7b7 \
  --env=DRONE_GITLAB_CLIENT_SECRET=f5958efba7aeff45efd8140fe03620363f82ca16d2941030fb353cd385ee2e80 \
  --env=DRONE_RPC_SECRET=a2c16d26360ce318337a71caeee5494d \
  --env=DRONE_SERVER_HOST=http://123.57.160.114 \
  --env=DRONE_SERVER_PROTO=http \
  --publish=7100:80 \
  --restart=always \
  --detach=true \
  --name=drone \
  drone/drone:1

注释

DRONE_GITLAB_SERVER
您的GitLab服务器网址

DRONE_GITLAB_CLIENT_ID
GitLab oauth客户端ID

DRONE_GITLAB_CLIENT_SECRET
GitLab oauth客户端密钥

DRONE_RPC_SECRET
必需的字符串值提供了在上一步中生成的共享机密。这用于验证服务器和运行程序之间的rpc连接。必须为服务器和运行程序提供相同的秘密值。

DRONE_SERVER_HOST
提供您的外部主机名或IP地址。如果使用IP地址,则可以包括端口

DRONE_SERVER_PROTO
必需的字符串值提供您的外部协议方案。此值应设置为http或https