Drone CI 中文文档

与 GitHub Enterprise 集成

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

准备

创建 OAuth 应用程序

创建一个 GitHub OAuth 应用程序,Consumer KeyConsumer Secret 用于授权访问 GitHub 资源。

授权回调 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_GITHUB_CLIENT_ID
    必填项,提供你在上一步中生成的 GitHub OAuth Client ID。
  • DRONE_GITHUB_CLIENT_SECRET
    必填项,提供你在上一步中生成的 GitHub OAuth Client Secret。
  • DRONE_GITHUB_SERVER
    必填项,提供你的 GitHub Enterprise 服务器地址。例如 https://github.commpany.com
  • DRONE_GIT_ALWAYS_AUTH
    可选项,配置值为布尔值,用于配置 Drone 在克隆公共存储库时是否进行身份验证。这仅应在使用启用私有模式的 GitHub Enterprise 时启用。
  • DRONE_RPC_SECRET
    必填项,提供在上一步中生成的共享密钥。这用于验证 Server 和 Runner 之间的 rpc 连接。必须为 Server 和 Runner 提供相同的秘密值。
  • DRONE_SERVER_HOST
    必填项,提供你的外部主机名或 IP 地址,例如 drone.company.com。如果使用 IP 地址,你可以包括端口。
  • DRONE_SERVER_PROTO
    必填项,提供你的外部协议方案。此值应设置为 httphttps。如果你配置 ssl 或 acme,此字段默认为 https如果你将 Drone 部署在负载均衡或带有禁止 SSL 的反向代理后面,则此值应设置为 https

启动 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_GITHUB_SERVER=https://github.com \
  --env=DRONE_GITHUB_CLIENT_ID=05136e57d80189bef462 \
  --env=DRONE_GITHUB_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