Drone CI 中文文档

与 GitLab 集成

本文介绍如何为 GitLab 安装 Drone Server。Server 被打包为一个最小的 Docker 镜像,发布在 DockerHub 上。

准备

创建 OAuth 应用程序

创建一个 GitLab OAuth 应用程序。Consumer Key 和 Consumer Secret 用于授权访问 GitLab 资源。

授权回调 URL 必须与以下格式和路径匹配,并且必须使用你的服务器选用的协议和真实主机地址(IP 或域名)。

创建 OAuth 应用程序 OAuth 应用程序创建预览

创建共享密钥

创建一个共享密钥来验证 Runner 和你的 Drone Server 之间的通信。

你可以使用 openssl 生成共享密钥:

$ openssl rand -hex 16
bea26a2221fd8090ea38720fc445eca6

下载 Drone Server

Drone Server 使用轻量的 Docker 镜像分发。镜像包含自身运行的所有程序,没有任何外部依赖。使用 latest 标签可以确保你使用的 Drone 始终是最新版本。

$ docker pull drone/drone:2

配置

Drone Server 使用环境变量进行配置。本文引用了配置选项的子集,具体定义如下。有关配置选项的完整列表,请参阅 配置

  • DRONE_GITLAB_CLIENT_ID
    必填项,提供你在上一步中生成的 GitLab OAuth Client ID。
  • DRONE_GITLAB_CLIENT_SECRET
    必填项,提供你在上一步中生成的 GitLab OAuth Client Secret。
  • DRONE_GITLAB_SERVER
    可选项,提供你的 GitLab 服务器 url。默认值为 https://gitlab.com,表示使用 gitlab.com 服务。
  • DRONE_GIT_ALWAYS_AUTH
    可选项,配置值为布尔值,用于配置 Drone 在克隆公共存储库时是否进行身份验证。该选项仅应在使用启用私有模式的自托管 GitLab 时启用。
  • DRONE_RPC_SECRET
    必填项,提供在上一步中生成的共享密钥。这用于验证 Server 和 Runner 之间的 rpc 连接。必须为 Server 和 Runner 提供相同的秘密值。
  • DRONE_SERVER_HOST
    必填项,提供你的外部主机名或 IP 地址,例如 drone.domain.com。如果使用 IP 地址,你可以包括端口。
  • DRONE_SERVER_PROTO
    必填项,提供你的外部协议方案。此值应设置为 httphttps。如果你配置 ssl 或 acme,此字段默认为 https如果你将 Drone 部署在负载均衡或带有禁止 SSL 的反向代理后面,则此值应设置为 https
  • DRONE_USER_FILTER
    可选项,GitLab 用户或组织列表,使用逗号分隔。注册仅限于此列表中的用户,或者是此列表中组织成员的用户。如果未设置此值,注册将向公众开放。

启动 Drone Server

你可以使用以下命令启动 Server 容器。容器是通过环境变量配置的。有关配置参数的完整列表,请参阅 配置参考记住用适当的值替换下面的占位符值。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
docker run \
  --volume=/var/lib/drone:/data \
  --env=DRONE_GITLAB_SERVER=https://gitlab.com \
  --env=DRONE_GITLAB_CLIENT_ID=05136e57d80189bef462 \
  --env=DRONE_GITLAB_CLIENT_SECRET=7c229228a77d2cbddaa61ddc78d45e \
  --env=DRONE_RPC_SECRET=super-duper-secret \
  --env=DRONE_SERVER_HOST=drone.company.com \
  --env=DRONE_SERVER_PROTO=https \
  --publish=80:80 \
  --publish=443:443 \
  --restart=always \
  --detach=true \
  --name=drone \
  drone/drone:2

安装 Runner

一旦你的 Drone Server 启动并运行,你将需要安装 Runner 来执行你的构建 Pipeline。有关详细的安装说明,请参阅我们的 Runner 安装文档。

安装 Runner