
rancher/droneDrone 是一款开源的持续集成/持续部署(CI/CD)工具,旨在自动化软件开发流程中的构建、测试和部署环节。通过与 GitHub、GitLab、Bitbucket 等主流代码托管平台集成,Drone 可监听代码仓库事件(如提交、合并请求),自动触发预定义的构建流程,帮助开发团队提升开发效率、缩短交付周期。
.drone.yml 定义项目构建流程。输出结果中需包含bashsudo docker info | grep Driver:
aufs。注意:当前项目处于 Alpha 阶段,稳定性有待验证,生产环境使用需谨慎。
bashwget downloads.drone.io/master/drone.deb sudo dpkg -i drone.deb
bashwget downloads.drone.io/master/drone.rpm sudo yum localinstall drone.rpm
通过 Docker 运行 Drone(需提前准备配置文件):
bashdocker run -d \ --name drone \ -p 8000:8000 \ -v /etc/drone/drone.toml:/etc/drone/drone.toml \ -v /var/run/docker.sock:/var/run/docker.sock \ drone/drone:latest \ droned --config=/etc/drone/drone.toml
Drone 默认使用 SQLite 数据库(自动创建),同时支持 PostgreSQL 和 MySQL,需通过配置文件指定。
toml# PostgreSQL 配置 [database] driver = "postgres" datasource = "host=127.0.0.1 user=postgres dbname=drone sslmode=disable" # MySQL 配置 [database] driver = "mysql" datasource = "root@tcp(127.0.0.1:3306)/drone"
默认路径:/etc/drone/drone.toml(通过 deb/rpm 包安装时),支持通过 droned --config=/path/to/drone.toml 指定自定义路径。
| 配置段 | 字段名 | 描述 | 示例值 |
|---|---|---|---|
[server] | port | HTTP 服务端口 | "8000" |
[server.ssl] | key/cert | SSL 私钥/证书文件路径(启用 HTTPS 时必填) | "/etc/drone/ssl/key.pem" |
[session] | secret | 会话加密密钥(建议使用随机字符串) | "your-random-secret-key" |
expires | 会话过期时间(如 "24h" 表示 24 小时) | "24h" | |
[database] | driver | 数据库驱动(sqlite3/postgres/mysql) | "postgres" |
datasource | 数据库连接字符串 | "host=127.0.0.1 dbname=drone sslmode=disable" | |
[registration] | open | 是否允许用户自助注册(true/false) | true |
[github] | client/secret | GitHub OAuth 应用的 Client ID 和 Secret(集成 GitHub 时必填) | "your-github-client-id" |
[gitlab] | url | GitLab 服务地址(自托管 GitLab 需指定) | "[***]" |
skip_verify | 是否跳过 SSL 证书验证(自签名证书时设为 true) | false | |
[worker] | nodes | Worker 节点列表(Docker 守护进程地址) | ["unix:///var/run/docker.sock"] |
所有配置文件中的参数均可通过环境变量设置,格式为 DRONE_<配置段>_<字段名>(嵌套配置段用下划线连接)。示例如下:
bash# 数据库配置 export DRONE_DATABASE_DRIVER="mysql" export DRONE_DATABASE_DATASOURCE="root@tcp(127.0.0.1:3306)/drone" # GitHub 集成 export DRONE_GITHUB_CLIENT="your-client-id" export DRONE_GITHUB_SECRET="your-client-secret" # 会话配置 export DRONE_SESSION_SECRET="your-random-secret" export DRONE_SESSION_EXPIRES="24h" # 注册控制 export DRONE_REGISTRATION_OPEN=false
无需额外配置,Drone 会自动在运行目录创建 SQLite 数据库文件(drone.sqlite)。
toml[database] driver = "postgres" datasource = "host=数据库地址 user=用户名 dbname=数据库名 password=密码 sslmode=disable"
需提前创建数据库(如
drone),并确保用户有读写权限。
toml[database] driver = "mysql" datasource = "用户名:密码@tcp(数据库地址:端口)/数据库名?charset=utf8mb4"
示例:
"root:password@tcp(127.0.0.1:3306)/drone?charset=utf8mb4"
[***]);[***]。将 GitHub OAuth 应用的 Client ID 和 Secret 填入配置文件或环境变量:
toml# 配置文件方式 [github] client = "your-github-client-id" secret = "your-github-client-secret"
bash# 环境变量方式 export DRONE_GITHUB_CLIENT="your-github-client-id" export DRONE_GITHUB_SECRET="your-github-client-secret"
项目需在根目录添加 .drone.yml 文件定义构建流程,详细语法可参考 Drone 0.2 文档(注:当前项目处于 Alpha 阶段,语法可能更新)。





manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务