GitHub WebHook与Drone集成失效求助:OAuth有效但推送无响应
GitHub WebHook与Drone集成故障排查
我已确认OAuth配置有效,但推送代码时GitHub WebHook无法触发Drone流水线。相关信息如下:
配置截图
- [OAuth配置截图1]
- [OAuth配置截图2]
相关日志
服务器日志
{ "acme": false, "host": "5685-220-136-43-106.ngrok-free.app", "level": "info", "msg": "starting the http server", "port": ":80", "proto": "http", "time": "2023-04-13T11:54:15Z", "url": "http://5685-220-136-43-106.ngrok-free.app" } { "interval": "30m0s", "level": "info", "msg": "starting the cron scheduler", "time": "2023-04-13T11:54:15Z" } { "interval": "24h0m0s", "level": "info", "msg": "starting the zombie build reaper", "time": "2023-04-13T11:54:15Z" }
注:我怀疑日志中的starting the zombie build reaper可能是问题点,但不确定。
Runner日志
time="2023-04-13T11:54:15Z" level=info msg="successfully pinged the remote server" time="2023-04-13T11:54:15Z" level=info msg="polling the remote server" arch=amd64 capacity=3 endpoint="http://drone-server" kind=pipeline os=linux type=docker
Drone通过ngrok生成公网URL。
Docker Compose配置
drone-server: image: drone/drone:2 container_name: drone-server volumes: - ./var/drone_server/:/var/lib/drone/ environment: - DRONE_SERVER_HOST=${DRONE_SERVER_HOST} - DRONE_SERVER_PROTO=${DRONE_SERVER_PROTO} - DRONE_RPC_SECRET=${DRONE_RPC_SECRET} - DRONE_GITHUB_SERVER=https://github.com - DRONE_GITHUB_CLIENT_ID=${DRONE_GITHUB_CLIENT_ID} - DRONE_GITHUB_CLIENT_SECRET=${DRONE_GITHUB_CLIENT_SECRET} - DRONE_LOGS_PRETTY=true - DRONE_LOGS_COLOR=true ports: - 80:80 restart: always drone-runner: image: drone/drone-runner-docker:1 container_name: drone-runner depends_on: - drone-server volumes: - /var/run/docker.sock:/var/run/docker.sock environment: - DRONE_RPC_HOST=${DRONE_RPC_HOST} - DRONE_RPC_PROTO=${DRONE_RPC_PROTO} - DRONE_RPC_SECRET=${DRONE_RPC_SECRET} - DRONE_RUNNER_CAPACITY=3 restart: always
.env文件内容
DRONE_SERVER_HOST=5685-220-136-43-106.ngrok-free.app DRONE_SERVER_PROTO=http DRONE_RPC_HOST=drone-server DRONE_RPC_SECRET=5a9289b7d9676e80498738883e072b5c DRONE_RPC_PROTO=http DRONE_GITHUB_CLIENT_ID=9ebf7416####1724ebd DRONE_GITHUB_CLIENT_SECRET=1f3d#####f52dfd9e8a51dc13873#####d3eb34
drone.yml配置
kind: pipeline type: docker name: default trigger: branch: - master event: - push platform: os: linux arch: amd64 steps: - name: build-image image: docker:latest commands: - docker build -t backendtest . - docker rmi $(docker images -q -f dangling=true)
请问我还需要进行哪些额外设置?
排查建议
1. 检查GitHub WebHook配置
- 确认仓库WebHook URL是
http://5685-220-136-43-106.ngrok-free.app/hook,必须带/hook路径,这是Drone接收WebHook的固定端点。 - 验证WebHook的Secret和Drone的
DRONE_RPC_SECRET完全一致,注意大小写、特殊字符。 - 确认WebHook触发事件勾选了
Push,和drone.yml的trigger.event匹配。 - 查看GitHub WebHook的「Recent Deliveries」,如果有失败记录,直接看错误详情(比如404、403状态码)。
2. 验证ngrok连通性
- 访问
http://5685-220-136-43-106.ngrok-free.app,确认Drone页面正常加载,排除隧道失效。 - 查看ngrok终端日志,确认有来自GitHub的请求到达。
3. 补充Drone服务器配置
- 添加环境变量
DRONE_LOGS_LEVEL=debug,重启服务器后再推送代码,查看是否有WebHook相关日志(当前日志只有启动信息,没有请求记录)。 - 确认Drone控制台中对应仓库是「Active」状态,若为「Inactive」需手动激活。
4. 流水线配置检查
- 确保
.drone.yml在master分支根目录下,和触发器的branch: master对应。
关于「zombie build reaper」的说明
这条日志是正常的,Drone会定期清理僵尸构建进程,和WebHook触发问题无关,不用在意。
内容的提问来源于stack exchange,提问作者GoldenMagicDoge
相关产品推荐
相关产品推荐

