
基于 Docker 的 CI/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镜像
docker pull drone/drone:1

为Gitlab安装Drone服务器
- 创建一个OAuth应用程序


启动容器
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
