drone.io 以 docker 容器方式运行时,其日志默认不落盘到系统 `/var/log/`,而是由 docker 引擎托管;可通过 `docker logs` 命令实时查看容器输出,快速定位如登录失败(http 400)、oauth 回调异常等运行时问题。
Drone.io 在标准部署中通常以单容器(或配合数据库容器)形式运行,所有运行时日志(包括 HTTP 请求、认证流程、GitHub OAuth 回调解析、数据库连接状态等)均直接输出到容器的标准输出(stdout/stderr),而非写入宿主机文件系统。因此,在 /var/log/ 下搜索 drone 文件必然为空——这是设计使然,而非配置遗漏。
确认 Drone 容器正在运行:
docker ps -a | grep drone
输出示例:
a1b2c3d4e5f6 drone/drone:2.22.0 "/bin/drone-server" 2 hours ago Up 2 hours 0.0.0.0:8080->80/tcp drone-server
实时跟踪日志(推荐调试时使用):
docker logs -f a1b2c3d4e5f6
-f 参数实现“follow”模式,类似 tail -f,可即时捕获登录请求、OAuth 重定向、state 校验失败、code 解析异常等关键线索。
查看最近 100 行历史日志(排查已发生的 400 错误):
docker logs --tail 100 a1b2c3d4e5f6

? 提示:启动容器时建议始终添加 --log-driver=json-file --log-opt max-size=10m --log-opt max-file=3(Docker 默认即为 json-file),确保日志可被 docker logs 可靠读取;避免使用 none 或 syslog 等非标准驱动导致日志不可见。
docker run -d \ --env DRONE_LOGS_DEBUG=true \ --env DRONE_LOGS_TRACE=true \ ... drone/drone:2.22.0
通过 docker logs 直接观测容器输出,是 Drone 故障诊断的第一道也是最高效的入口——它绕过了传统守护进程的日志抽象层,让你直面真实运行上下文。