售前咨询400-838-0503

怎样在Linux云服务器上安装Drone?

发布:2025-04-17 13:34

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认证,您需要:

  1. 登录GitHub开发者设置
  2. 新建OAuth应用
  3. 设置回调URL为http(s)://your-domain/login
  4. 记录下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配置。

按文档操作后还是不行,把机器编号、出问题的时间点和现象截图一起提工单,能少来回一轮。

提交工单