Drone CI可在银河麒麟系统上部署,需先确认aarch64/x86_64架构、安装Docker 20.10+并启用服务,再拉取drone/drone:2.22.0与drone-runner-docker:1.12.0镜像,配置Server和Runner共享RPC密钥,绑定GitHub OAuth,创建.drone.yml触发构建,最后可选Nginx+TLS加固。

如果您已在银河麒麟操作系统上部署应用服务,但需要引入轻量级、容器友好的持续集成能力,则Drone CI是一个契合国产化环境的可行选择。以下是完成Drone CI在银河麒麟系统上安装与基础配置的具体步骤:
一、确认系统环境与前置依赖
Drone CI基于Go语言开发,以容器方式运行,需确保银河麒麟系统已具备Docker运行时及必要工具链支持。该步骤旨在验证底层运行环境是否满足Drone官方最低要求,避免后续服务启动失败。
1、执行uname -m命令,确认系统架构为aarch64(鲲鹏/飞腾)或x86_64(海光/兆芯),Drone官方镜像仅支持这两种架构。
2、运行docker --version,确保已安装Docker 20.10.0及以上版本;若未安装,使用sudo kylin-repo install docker-ce进行安装。
3、执行sudo systemctl is-active docker,确认Docker服务处于active状态;如非活跃,运行sudo systemctl start docker && sudo systemctl enable docker启用并设为开机自启。
4、检查/etc/docker/daemon.json是否存在,若不存在则创建该文件,并写入{"insecure-registries":["http://127.0.0.1:3000"]}(用于本地Drone Agent连接)。
二、部署Drone Server服务
Drone Server是核心控制节点,负责接收代码仓库Webhook、调度构建任务、管理用户权限。需通过Docker方式拉取适配麒麟OS的镜像并持久化关键数据。
1、创建Drone数据目录:sudo mkdir -p /var/lib/drone。
2、拉取Drone Server镜像:sudo docker pull drone/drone:2.22.0(该版本经openEuler生态验证,兼容银河麒麟NestOS及V10服务器版)。
3、运行Server容器,绑定GitHub/GitLab OAuth回调地址(以GitHub为例):sudo docker run -d \--name=drone-server \--restart=always \-p 80:80 \-v /var/lib/drone:/data \-e DRONE_GITHUB_CLIENT_ID=<strong><font color="green">your_github_client_id</font></strong> \-e DRONE_GITHUB_CLIENT_SECRET=<strong><font color="green">your_github_client_secret</font></strong> \-e DRONE_RPC_SECRET=<strong><font color="green">shared_secret_between_server_and_agent</font></strong> \-e DRONE_SERVER_HOST=<strong><font color="green">your-domain-or-ip</font></strong> \-e DRONE_SERVER_PROTO=http \-e DRONE_LOGS_DEBUG=true \drone/drone:2.22.0
三、部署Drone Runner(Agent)
Runner是实际执行构建任务的工作节点,必须与Server共享RPC密钥,并注册到同一网络域。银河麒麟推荐使用docker-runner以最小化资源占用。
1、拉取Runner镜像:sudo docker pull drone/drone-runner-docker:1.12.0。
2、创建Runner配置目录:sudo mkdir -p /etc/drone-runner。
3、生成Runner配置文件/etc/drone-runner/config,内容包含:DRONE_RPC_PROTO=httpDRONE_RPC_HOST=127.0.0.1:3000DRONE_RPC_SECRET=<strong><font color="green">shared_secret_between_server_and_agent</font></strong>DRONE_RUNNER_NAME=kylin-docker-runnerDRONE_RUNNER_CAPACITY=4
4、启动Runner容器:sudo docker run -d \--name=drone-runner \--restart=always \--network=host \-v /var/run/docker.sock:/var/run/docker.sock \-v /etc/drone-runner:/etc/drone-runner \-e DRONE_RPC_PROTO \-e DRONE_RPC_HOST \-e DRONE_RPC_SECRET \-e DRONE_RUNNER_NAME \-e DRONE_RUNNER_CAPACITY \drone/drone-runner-docker:1.12.0
四、配置Git仓库Webhook与项目启用
Drone需通过Webhook接收代码推送事件,因此必须在Git平台完成OAuth授权与仓库级钩子绑定,确保事件可被Server正确识别和路由。
1、访问http://<strong><font color="green">your-domain-or-ip</font></strong>,使用GitHub账号登录Drone Web界面。
2、进入Account → Activate Repositories,勾选目标仓库并点击Activate。
3、在仓库根目录创建.drone.yml文件,示例内容如下:kind: pipelinetype: dockername: defaultsteps:- name: build image: golang:1.22-alpine commands: - go build -o app .
4、提交该文件至main分支,触发首次构建;观察Drone UI中Builds页签状态是否变为success。
五、启用TLS加密与反向代理(可选加固)
生产环境中应避免明文HTTP暴露Drone服务,建议通过Nginx反向代理并配置Let’s Encrypt证书,提升通信安全性与合规性。
1、安装Nginx:sudo kylin-repo install nginx。
2、获取SSL证书:sudo apt install certbot python3-certbot-nginx(银河麒麟V10兼容apt命令别名);执行sudo certbot --nginx -d <strong><font color="green">your-domain.com</font></strong>。
3、编辑/etc/nginx/conf.d/drone.conf,配置proxy_pass指向http://127.0.0.1:80,并启用proxy_set_header X-Forwarded-Proto $scheme。
4、重载Nginx:sudo nginx -t && sudo systemctl reload nginx。


















