Drone CI 安装

warning: 这篇文章距离上次修改已过550天,其中的内容可能已经有所变动。

Drone CI安装

Drone CI是基于Dockers的下一代CICD工具,与Git源结合更加紧密,且轻量化,并解决了很多Jenkins的痛点,先来看看它的架构。

Drone CI架构图Drone CI架构图

安装

安装前需要装好Docker环境(建议)。

安装Git

Drone CI是和代码仓库高度耦合的,所以需要依赖一个具体的代码仓库源。这里我使用的是Gitea,可以参考官网的部署脚本。
Gitea官网

创建OAuth应用(Gitea)

因为Drone CI和Git仓库源是高度耦合的,权限与账号也都是基于Git的。所以需要在仓库源中创建一个OAuth应用给Drone CI使用。
登录Gitea, 右上角头像 -> 设置 -> 应用。就可以在下方看到新建应用:

新建应用新建应用

应用名称填写随意,建议用Drone来标识所属应用。重定向URI填写Drone地址/login即可。

保存后记得将密钥保存下来(后续密钥不会再显示了,只有重置)。

安装 Drone CI Server

通过Docker Compose进行安装(基于Gitea):

version: "3.9"
services:
  drone: 
    image: drone/drone:2
    container_name: drone
    environment:
      - DRONE_GITEA_SERVER=git地址
      - DRONE_GITEA_CLIENT_ID=申请的应用ID
      - DRONE_GITEA_CLIENT_SECRET=申请的应用密钥
      - DRONE_RPC_SECRET=自定义RPC链接密钥
      - DRONE_SERVER_HOST=域名
      - DRONE_SERVER_PROTO=http(s)
      - DRONE_USER_CREATE=可以指定管理员(用户名是Gitea里的用户名),格式:username:用户名,admin:true
      - DRONE_GIT_ALWAYS_AUTH=true
      - DRONE_LOGS_DEBUG=true
      - DRONE_LOGS_TEXT=true
      - DRONE_LOGS_PRETTY=true
      - DRONE_LOGS_COLOR=true
    volumes:
      - /docker/drone/data:/data
    ports:
      - 8080:80
    restart: always

安装 Drone Runner

Drone CI的构建是完全交给Runner处理的,RunnerServer拉取构建任务,然后反馈给Server。这一点和Jenkins是相反的,Jenkins通常是作为Master + Server的角色,把任务分发给构建机。
Runner的yml脚本:

version: "3.9"
services:
  drone-runner:
    image: drone/drone-runner-docker:1
    container_name: drone-runner
    environment:
      - DRONE_RPC_PROTO=http(s)
      - DRONE_RPC_HOST=Server地址(不需要带协议,只填写域名/ip+端口即可)
      - DRONE_RPC_SKIP_VERIFY=true # 是否跳过ssl验证
      - DRONE_RPC_SECRET=Server中定义的连接密钥
      - DRONE_RUNNER_CAPACITY=最大的同时构建数
      - DRONE_RUNNER_NAME=构建机名称(但是没有看到哪里有显示)
      - DRONE_TRACE=true
      - DRONE_DEBUG=true
    ports:
      - 8000:3000 # 这个端口是用来查看构建详情的,没其他用
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    restart: always

启动容器后, 查看一下日志检查是否连接上即可。

启用

部署完成后通过地址访问,第一次登陆时会自动同步仓库。耐心等待一下就可以看到账号下所有仓库了。此时还没有任何仓库被激活,需要手动选择需要激活的仓库,去激活后才会自动根据脚本构建。

激活仓库

选择需要激活的仓库,选择Settings,点击激活即可。激活后可以看到Git仓库中已经自动添加了WebHook了。

激活仓库激活仓库

开启特权容器

激活后,将Project Settings中的Trusted选项开启,然后点击Save Changes保存配置。

开启特权容器开启特权容器

最后修改于:2023年05月13日 18:57

评论已关闭