You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Drone OSS执行构建任务?构建停滞问题求助

解决Drone OSS构建卡在Loading的问题及正确使用方式

Drone OSS和企业版核心差异在于内置单节点执行器,无需额外runners,所有构建直接在Drone服务器节点本地执行,以下是具体配置和排查步骤:

1. 确认服务器基础环境配置

  • 必须在Drone服务器节点安装Docker,且Drone容器启动时必须挂载Docker socket:
    docker run ... -v /var/run/docker.sock:/var/run/docker.sock ... drone/drone:oss
    
    未挂载socket会导致Drone无法创建流水线步骤容器,直接卡在Loading状态。
  • 确保Drone进程对Docker socket有读写权限,若出现权限错误,可临时调整socket权限(chmod 666 /var/run/docker.sock)或配置容器以root用户运行。

2. 使用OSS兼容的流水线语法

Drone OSS仅支持基础单阶段Docker类型流水线,不支持企业版的多阶段构建、矩阵任务、服务依赖等高级特性,示例.drone.yml如下:

kind: pipeline
type: docker  # OSS仅支持docker类型,为必填项
name: default

steps:
  - name: hello-world
    image: alpine:3.18  # 使用公开可拉取的镜像
    commands:
      - echo "Drone OSS build executed successfully"
      - apk add --no-cache curl
      - curl --version

注意:不要添加services、matrix、stages等企业版专属字段,否则流水线会因解析失败卡在Loading。

3. 验证Drone服务器启动参数

启动Drone时需设置以下适配OSS特性的关键参数:

  • DRONE_AGENTS_ENABLED=false:禁用外部runner支持(OSS原生不兼容)
  • DRONE_RUNNER_CAPACITY=2:设置并发构建数(默认1,可按需调整)
  • 确保DRONE_SERVER_HOST和DRONE_SERVER_PROTO配置正确,否则流水线步骤无法回调服务器获取任务。

4. 排查日志定位问题

查看Drone容器日志:

docker logs <your-drone-container-id>

常见错误及解决:

  • permission denied while trying to connect to the Docker daemon socket:Docker socket挂载或权限问题,重新挂载socket并调整权限。
  • pull access denied for <image-name>:镜像拉取失败,检查镜像是否公开,或在Drone系统设置中配置私有镜像拉取密钥。
  • pipeline parse error: unknown field "services":使用了OSS不支持的字段,修改.drone.yml移除相关内容。

内容的提问来源于stack exchange,提问作者chkhd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 17:31:07