Drone CI 中文文档

Pool 文件

概览

默认情况下,使用 AWS 时,Runner 不需要 Pool 文件。它可以使用环境变量在内存中建立一个简单的 Pool。但是,如果你想要更复杂的配置或多个 Pool,请遵循以下指引。

Pool 文件设置实例化热实例的构建 Pool(构建不等待实例启动)。你可以拥有多个 Pool,每个 Pool 具有不同的配置,甚至使用不同的云服务驱动程序。

  • pool.yml 是默认文件名。
  • 每个 Pool 只有一种实例类型。
  • 可以有多个 Pool。不同的 Pipeline 可以使用同一个 Pool
  • 你可以指定 Pool 的最小大小。
  • 你可以指定 Pool 的最大大小。
  • 一个 Pool 只能在一个区域中。
  • 更改 Pool 配置将意味着删除现有图像并重新启动守护程序。
  • 如果 Pool 为空,它将触发一个临时实例。
  • 对于 Microsoft Windows Pool,设置平台很重要。如下面的 Windows 示例所示。

Pool 文件配置节

Root

建议在命名 Pool 时使用字母数字字符并以字母开头。这是为了避免在 amazon/anka/digitalocean/google 上的命名问题。

1
2
3
4
5
6
7
  name          string   # Pool 的名称,用于流水线选择 Pool
  default       bool     # 默认 Pool
  type          string   # amazon, anka, azure, digitalocean, google
  pool          int      # Pool 中的热实例总数
  limit         int      # 限制正在运行的服务器的总数。如果超出,将会被锁定或报错。
  platform      Platform # 将在下文中解释
  spec          Spec     # 将在下文中解释

Platform

这与其他 Runner 中的 plaform 相同,实现了 NB windows 支持:

1
2
3
4
5
  os      string
  arch    string
  variant string
  version string
  os_name string # 目前仅用于 amazon-linux

Spec

这是我们配置云服务驱动程序特定配置的地方。有许多不同的驱动程序。

使用 Pool 文件

下面是使用 docker 命令使用 Pool 文件的示例。我们可以使用配置文件夹来包含必要的配置文件。

1
2
3
ls  /path/on/host/config/
.drone_pool.yml
.env

以下命令创建一个容器并启动 Runner.

1
2
3
4
5
6
docker run -d \
  --volume=/path/on/host/config:/config/ \
  --publish=3000:3000 \
  --restart always \
  --name runner \
  drone/drone-runner-aws /config/.env /config/pool.yml