在统信UOS系统上构建Drone CI/CD流水线有四种方法:一、Docker Compose标准化部署;二、手动docker run启动Server与Agent;三、离线二进制部署Server(Runner仍需Docker);四、集成Git平台OAuth2认证,需同步时间、处理证书及配置回调URL。

如果您希望在统信UOS系统上构建轻量级CI/CD流水线,Drone作为基于容器的持续集成服务,需依赖Docker运行时环境并完成服务端与Agent组件协同部署。以下是多种可行的安装配置方法:
一、基于Docker Compose的标准化部署
该方式通过声明式编排文件统一管理Drone Server与Runner容器,适用于已稳定运行Docker且具备基础网络配置能力的UOS服务器环境,支持快速复现与版本控制。
1、确认Docker服务已启用并正常运行:sudo systemctl is-active docker
2、创建专用工作目录并进入:mkdir -p /opt/drone && cd /opt/drone
3、编写docker-compose.yml文件,内容包含server与agent两个服务定义,其中server需配置DRONE_SERVER_HOST、DRONE_RPC_SECRET等必要环境变量
4、执行部署命令:sudo docker-compose up -d
5、验证容器状态:sudo docker-compose ps,确认server与agent均显示Up状态
二、手动运行Drone Server与Agent容器
该方式绕过编排工具,直接使用docker run命令启动各组件,便于调试启动参数、隔离网络配置或适配UOS特有的cgroup v2限制场景。
1、拉取Drone官方镜像:sudo docker pull drone/drone:latest
2、运行Drone Server容器,挂载持久化数据卷并暴露80端口:sudo docker run -d --name=drone-server --restart=always -p 80:80 -v /var/lib/drone:/data -e DRONE_SERVER_HOST=your-domain-or-ip -e DRONE_RPC_SECRET=your-secret-key -e DRONE_SERVER_PROTO=http drone/drone:latest
3、拉取Drone Runner镜像:sudo docker pull drone/drone-runner-docker:latest
4、运行Drone Agent容器,连接至本地Server并启用Docker socket挂载:sudo docker run -d --name=drone-runner --restart=always --link drone-server -v /var/run/docker.sock:/var/run/docker.sock -e DRONE_RPC_PROTO=http -e DRONE_RPC_HOST=drone-server -e DRONE_RPC_SECRET=your-secret-key -e DRONE_RUNNER_CAPACITY=2 drone/drone-runner-docker:latest
三、离线环境下二进制方式部署Drone Server
该方式适用于无外网访问、禁止镜像拉取的高安全等级UOS生产环境,所有组件以静态可执行文件形式部署,不依赖Docker守护进程运行Server(仅Runner需Docker)。
1、在联网机器下载Drone Server二进制包(对应amd64或aarch64架构):wget https://github.com/drone/drone/releases/download/v2.25.0/drone-linux-amd64
2、赋予执行权限并重命名为drone:chmod +x drone-linux-amd64 && sudo mv drone-linux-amd64 /usr/local/bin/drone
3、创建systemd服务单元文件/etc/systemd/system/drone.service,指定WorkingDirectory、EnvironmentFile及ExecStart路径
4、创建环境变量文件/etc/default/drone,写入DRONE_DATABASE_DRIVER、DRONE_DATABASE_DATASOURCE、DRONE_SERVER_HOST、DRONE_RPC_SECRET等必需项
5、启用并启动服务:sudo systemctl daemon-reload && sudo systemctl enable drone && sudo systemctl start drone
四、集成Git平台认证的配置要点
Drone需与代码托管平台(如Gitea、Gogs或GitLab)建立OAuth2回调连接,UOS系统中需确保时间同步、HTTPS证书可信及反向代理配置兼容。
1、在UOS主机上安装并启用chrony服务:sudo apt install -y chrony && sudo systemctl enable chrony && sudo systemctl start chrony
2、若使用自签名证书,在Drone Server容器启动参数中添加--tls-disable或配置CA证书路径
3、在Git平台应用设置中注册OAuth2应用,获取Client ID与Client Secret
4、将Client ID与Client Secret填入Drone Server环境变量DRONE_GITEA_CLIENT_ID与DRONE_GITEA_CLIENT_SECRET
5、确保Drone_SERVER_HOST值与Git平台OAuth2回调URL中域名完全一致,大小写与协议必须严格匹配

















