drone是国外比较流行的自动化构建工具,基于docker。相比较jenkins,它会让服务器环境更加干净。它整个的构建流程全部在容器中完成,同时它拥有一个非常现代化的Web界面。
1、drone的安装
我们需要先去mysql数据创建一个drone
数据库。然后在test-node-1执行
docker run --name=drone \
--volume=/data/drone:/data \
--env=DRONE_AGENTS_ENABLED=true \
--env=DRONE_GOGS_SERVER=http://172.16.113.9:3000 \
--env=DRONE_RPC_SECRET=123456key \
--env=DRONE_SERVER_HOST=172.16.113.9:8080 \
--env=DRONE_SERVER_PROTO=http \
--env=TZ=PRC \
--env=DRONE_DATABASE_DRIVER=mysql \
--env=DRONE_DATABASE_DATASOURCE="root:123456@tcp(mysql5.7:3306)/drone?parseTime=true" \
--publish=8080:80 \
--publish=8443:443 \
--detach=true \
--restart=always \
--network app_network \
--restart always \
-d drone/drone
等待完成后,在浏览器访问http://172.16.113.9:8080/
,这时候我们使用gogs的账号密码登录即可。
这时候点击右上角的SYNC
可以把gogs的仓库同步到drone。等等!到这里还没完,到这一步还没好呢。
2、drone-runner的安装
runner是drone的核心部件,在test-node-1执行
docker run -d --name drone-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
-e DRONE_RPC_PROTO=http \
-e DRONE_RPC_HOST=drone:80 \
-e DRONE_RPC_SECRET=123456key \
-e DRONE_RUNNER_CAPACITY=2 \
-e DRONE_RUNNER_NAME=drone-runner \
-e DRONE_DATABASE_DRIVER=mysql \
-e DRONE_DATABASE_DATASOURCE="root:123456@tcp(mysql5.7:3306)/drone?parseTime=true" \
-p 13000:3000 \
--network app_network \
--restart always \
drone/drone-runner-docker
⚠️注意:DRONE_RPC_HOST
这个环境变量填写的是drone的容器名,DRONE_RPC_HOST
这个填写的是drone容器内的端口号。
3、检查drone-runner日志
检查一下日志,可以帮我们确定drone-runner是否真的连接上drone了,如果有异常,日志中会输出。 我们可以直接在portainer上查看日志:
成功进入后会输出类似下图的日志:
4、小结
现在drone和runner都安装完成,我们先放一边,后面会用到。