本文介绍如何为 Gitea 安装 Drone Server
。Server 被打包为一个最小的 Docker 镜像,发布在 DockerHub 上。
请注意,我们强烈建议在专用实例上安装 Drone。由于网络复杂,我们不建议将 Drone 和 Gitea 安装在同一台机器上,我们绝对不建议使用 docker-compose 在同一台机器上安装 Drone 和 Gitea。
准备
创建 OAuth 应用程序
创建一个 Gitea OAuth 应用程序。Consumer Key 和 Consumer Secret 用于授权访问 Gitea 资源。
授权回调 URL 必须与以下格式和路径匹配,并且必须使用你的服务器选用的协议和真实主机地址(IP 或域名)。
你还必须检查「Confidential Client」。
创建共享密钥
创建一个共享密钥来验证 Runner
和你的 Drone Server
之间的通信。
你可以使用 openssl 生成共享密钥:
$ openssl rand -hex 16
bea26a2221fd8090ea38720fc445eca6
下载 Drone Server
Drone Server
使用轻量的 Docker 镜像分发。镜像包含自身运行的所有程序,没有任何外部依赖。使用 latest
标签可以确保你使用的 Drone 始终是最新版本。
$ docker pull drone/drone:2
配置
Drone Server 使用环境变量进行配置。本文引用了配置选项的子集,具体定义如下。有关配置选项的完整列表,请参阅 配置。
-
- DRONE_GITEA_CLIENT_ID
- 必填项,提供你在上一步中生成的 Gitea OAuth Client ID。
-
- DRONE_GITEA_CLIENT_SECRET
- 必填项,提供你在上一步中生成的 Gitea OAuth Client Secret。
-
- DRONE_GITEA_SERVER
- 必填项,提供你的 Gitea 服务器地址。例如
https://gitea.company.com
,注意http(s)
,否则你会看到来自 Gitea 的「不支持的协议方案(unsupported protocol scheme)」错误。
-
- DRONE_GIT_ALWAYS_AUTH
- 可选项,配置值为布尔值,用于配置 Drone 在克隆公共存储库时是否进行身份验证。
-
- DRONE_RPC_SECRET
- 必填项,提供在上一步中生成的共享密钥。这用于验证 Server 和 Runner 之间的 rpc 连接。必须为 Server 和 Runner 提供相同的秘密值。
-
- DRONE_SERVER_HOST
- 必填项,提供你的外部主机名或 IP 地址,例如
drone.company.com
。如果使用 IP 地址,你可以包括端口。
-
- DRONE_SERVER_PROTO
- 必填项,提供你的外部协议方案。此值应设置为
http
或https
。如果你配置 ssl 或 acme,此字段默认为https
。如果你将 Drone 部署在负载均衡或带有禁止 SSL 的反向代理后面,则此值应设置为https
。
启动 Drone Server
你可以使用以下命令启动 Server 容器。容器是通过环境变量配置的。有关配置参数的完整列表,请参阅 配置参考。记住用适当的值替换下面的占位符值。
|
|
安装 Runner
一旦你的 Drone Server
启动并运行,你将需要安装 Runner
来执行你的构建 Pipeline
。有关详细的安装说明,请参阅我们的 Runner
安装文档。