Linux云服务器上安装Drone的完整指南
随着DevOps实践的普及,持续集成/持续部署(CI/CD)工具变得越来越重要。Drone作为一款轻量级、基于Docker的CI/CD工具,因其简单易用和高度可扩展性而受到开发者青睐。本文将详细介绍在Linux云服务器上安装Drone的完整步骤。
准备工作
在开始安装前,请确保您已准备好以下环境:
- 一台运行主流Linux发行版(如Ubuntu 20.04/CentOS 8)的云服务器
- 服务器已安装Docker和Docker Compose
- 拥有服务器的root或sudo权限
- 一个GitHub/GitLab/Gitea账号(用于OAuth认证)
安装步骤
1. 安装Docker和Docker Compose
如果您的服务器尚未安装Docker,请先执行以下命令:
# 对于Ubuntu/Debian系统
sudo apt-get update
sudo apt-get install docker.io docker-compose -y
sudo systemctl enable --now docker
# 对于CentOS/RHEL系统
sudo yum install docker docker-compose -y
sudo systemctl enable --now docker
2. 创建Drone配置文件
创建一个专门目录存储Drone配置:
mkdir ~/drone && cd ~/drone
nano docker-compose.yml
在编辑器中输入以下内容(以GitHub为例):
version: '3'
services:
drone-server:
image: drone/drone:2
ports:
- "80:80"
- "443:443"
volumes:
- /var/lib/drone:/data
environment:
- DRONE_GITHUB_CLIENT_ID=您的GitHub客户端ID
- DRONE_GITHUB_CLIENT_SECRET=您的GitHub客户端密钥
- DRONE_RPC_SECRET=生成一个强密钥
- DRONE_SERVER_HOST=您的域名或IP
- DRONE_SERVER_PROTO=http或https
restart: always
drone-runner:
image: drone/drone-runner-docker:1
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- DRONE_RPC_PROTO=http或https
- DRONE_RPC_HOST=您的域名或IP
- DRONE_RPC_SECRET=与上面相同的密钥
- DRONE_RUNNER_CAPACITY=2
- DRONE_RUNNER_NAME=${HOSTNAME}
restart: always
3. 获取OAuth应用凭证
要使用GitHub认证,您需要:
- 登录GitHub开发者设置
- 新建OAuth应用
- 设置回调URL为http(s)://your-domain/login
- 记录下Client ID和Client Secret
4. 启动Drone服务
配置完成后,执行:
docker-compose up -d
配置与使用
1. 访问Drone界面
在浏览器中访问您的服务器IP或域名,使用GitHub账号登录。
2. 激活仓库
在Drone界面中选择需要集成的仓库并激活。
3. 创建.drone.yml文件
在项目根目录创建.drone.yml文件定义构建流程,例如:
kind: pipeline
type: docker
name: default
steps:
- name: test
image: golang:1.16
commands:
- go test ./...
高级配置
1. 启用HTTPS
建议使用Nginx反向代理配置SSL证书:
server {
listen 443 ssl;
server_name your-domain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
2. 数据库配置
默认使用SQLite,生产环境建议使用PostgreSQL或MySQL:
environment:
- DRONE_DATABASE_DRIVER=postgres
- DRONE_DATABASE_DATASOURCE=postgres://root:[email protected]:5432/postgres?sslmode=disable
常见问题解决
- 403错误:检查OAuth应用的回调URL配置
- 连接Runner失败:确认RPC_SECRET一致且网络可达
- 构建卡住:检查runner日志和资源限制
通过以上步骤,您已成功在Linux云服务器上安装并配置了Drone CI/CD系统。Drone的轻量级特性和基于Docker的设计使其成为中小型项目的理想选择。根据项目需求,您可以进一步探索Drone的插件系统和多runner配置。
