需完成二进制安装、服务配置、令牌注册及运行时权限适配;先创建目录并下载对应架构的drone-runner-docker二进制,再配置drone_rpc_host、drone_rpc_proto和drone_rpc_secret等环境变量。

如果您希望在Linux系统上部署Drone Runner以支持Drone CI/CD流水线的作业执行,则需完成二进制安装、服务配置、令牌注册及运行时权限适配等关键环节。以下是具体操作步骤:
一、下载并安装Drone Runner二进制文件
Drone Runner提供预编译的静态二进制文件,适用于主流Linux发行版(x86_64、ARM64),无需依赖外部库,直接部署即可运行。
1、创建专用运行目录:sudo mkdir -p /opt/drone-runner
2、进入目录:cd /opt/drone-runner
3、下载对应架构的最新稳定版二进制(以x86_64为例):sudo curl -L https://github.com/drone-runners/drone-runner-docker/releases/download/v1.12.0/drone-runner-docker-linux-amd64 -o drone-runner-docker
4、赋予可执行权限:sudo chmod +x drone-runner-docker
二、配置Runner环境变量与配置文件
Runner需通过环境变量或配置文件指定Drone Server地址、注册令牌及运行时参数,确保能正确连接并认证到Drone服务器。
1、获取Drone Server地址与注册令牌:登录Drone Web界面,在Account → Settings → Add New Runner中复制DRONE_RPC_HOST和DRONE_RPC_PROTO值,并点击生成DRONE_RPC_SECRET
2、创建环境变量配置文件:sudo tee /etc/default/drone-runner
DRONE_RPC_HOST=your-drone-domain.com
DRONE_RPC_PROTO=https
DRONE_RPC_SECRET=your-generated-rpc-secret
DRONE_RUNNER_NAME=linux-docker-runner-01
DRONE_RUNNER_CAPACITY=4
DRONE_LOGS_DEBUG=true
EOF
三、配置systemd服务单元
使用systemd管理Runner进程,确保其开机自启、自动重启失败实例,并统一日志输出路径。
1、创建服务定义文件:sudo tee /etc/systemd/system/drone-runner.service
[Unit]
Description=Drone Runner
After=network.target
[Service]
Type=simple
EnvironmentFile=/etc/default/drone-runner
ExecStart=/opt/drone-runner/drone-runner-docker
Restart=always
RestartSec=10
User=root
Group=root
[Install]
WantedBy=multi-user.target
EOF
四、启用Docker运行时并授权Runner访问
Drone Runner Docker版依赖宿主机Docker守护进程调度容器,必须确保Runner进程具备调用Docker Socket的权限,且Docker服务已就绪。
1、确认Docker已安装并运行:sudo systemctl is-active docker
2、将runner用户加入docker组(若未使用root运行):sudo usermod -aG docker drone-runner
3、修改Docker Socket权限(临时方案,仅用于测试):sudo chmod 666 /var/run/docker.sock
4、如需持久化安全访问,应配置Docker守护进程启用TLS并为Runner颁发客户端证书,此处略去证书生成步骤。
五、启动Runner并验证注册状态
启动服务后,Runner会主动向Drone Server发起注册请求;成功注册后将在Web界面的Runners列表中显示为激活状态。
1、重载systemd配置:sudo systemctl daemon-reload
2、启用开机自启:sudo systemctl enable drone-runner
3、启动服务:sudo systemctl start drone-runner
4、查看实时日志确认连接与注册:sudo journalctl -u drone-runner -f
5、检查是否出现在Drone Web界面:Admin → Runners → 查看Name为linux-docker-runner-01的状态是否为active










