Bencher 自托管


Bencher 是 开源的。 它有 SaaS 版本,Bencher Cloud, 也可以作为一组可自托管的容器镜像使用:

部署

部署 Bencher 自托管的最简单方法是使用一系列 bencher CLI 子命令:

bencher up

创建并启动 Bencher 自托管容器。 这类似于运行 docker compose up

bencher up [OPTIONS] [SERVICE]

服务

选择要运行的容器。可能的选项有:allapiconsole。默认选择 all。类似于 docker compose upSERVICE 参数。

选项

--detach

以分离模式运行。 容器将在后台运行。 类似于docker compose up--detach 标志。

--pull <WHEN>

在运行之前拉取镜像。 可能的选项有:alwaysmissingnever。 默认情况下选择 always。 类似于 docker compose up--pull 选项。

--tag <TAG>

指定容器的镜像标签。 默认情况下,镜像标签与 bencher CLI 版本匹配。 最新的 bencher CLI 版本是 v0.4.22

--console-port <PORT>

为控制台服务器容器指定一个端口号。 默认情况下,使用端口 3000。 类似于 docker run--expose 选项的仅端口形式。

--api-port <PORT>

为 API 服务器容器指定一个端口号。 默认情况下,使用端口 61016。 类似于 docker run--expose 选项 的仅端口形式。

--console-env <KEY_VALUE>

将环境变量传递给控制台服务器容器。预期格式为 KEY=value。这在使用控制台服务器配置时很有用。类似于 docker run--env 选项

--api-env <KEY_VALUE>

将环境变量传递给 API 服务器容器。 预期格式为 KEY=value。 这在使用 API 服务器配置 时很有用。 类似于 docker run--env 选项

--console-volume <HOST_CONTAINER>

将挂载卷传递给控制台服务器容器。 预期格式为 /host/path:/container/path。 这在使用控制台服务器配置时可能很有用。 类似于 docker run--volume 选项

--api-volume <HOST_CONTAINER>

将挂载卷传递给 API 服务器容器。 预期格式为 /host/path:/container/path。 这在使用 API 服务器配置 时很有用。 类似于 docker run--volume 选项

--help

打印帮助。

bencher logs

查看 Bencher 自托管容器的输出, 如果 bencher up 是与--detach 选项一起运行的。 这类似于运行 docker compose logs

bencher up [OPTIONS] [SERVICE]

服务

选择要运行的容器。 可能的选择有:allapiconsole。 默认选择是 all。 类似于docker compose logsSERVICE 参数。

选项

--help

打印帮助。

bencher down

停止并移除 Bencher 自托管的容器, 如果 bencher up 时使用了 --detach 标志。 这类似于运行 docker compose down

bencher down [OPTIONS] [SERVICE]

服务

选择要运行的容器。 可以选择的项有:allapiconsole。 默认选择all。 类似于 docker compose downSERVICE 参数。

选项

--help

打印帮助。

或者,您也可以仅使用 docker compose 来编排容器。 这是一个 docker-compose.yml 文件的示例:

version: "3.9"
services:
bencher_api_compose:
image: ghcr.io/bencherdev/bencher-api:latest
container_name: bencher_api
ports:
- 61016:61016
volumes:
# Mount the configuration directory
- "./services/api/etc:/etc/bencher"
# Mount the database directory
- "./services/api/data:/var/lib/bencher/data"
# environment:
# Set configuration string or file path
# - BENCHER_CONFIG=
# - BENCHER_CONFIG_PATH=
bencher_console_compose:
image: ghcr.io/bencherdev/bencher-console:latest
container_name: bencher_console
ports:
- 3000:3000
environment:
# Set the API URL to the localhost IPv4 address
- BENCHER_API_URL=http://127.0.0.1:61016
# This is needed for Docker-to-Docker communication when using a local `BENCHER_API_URL`
# Do not set this when using a remote `BENCHER_API_URL`, such as https://bencher.example.com
- INTERNAL_API_URL=http://host.docker.internal:61016
depends_on:
- bencher_api_compose

Host URL

在使用 Bencher 自托管时,您需要为大多数 bencher CLI 子命令将 the --host option 设置为您的 Bencher API 服务器的 URL。

例如,如果您使用 bencher run CLI 子命令,并与 Bencher API 服务器(设为 https://api.bencher.example.com)配合使用,那么您可以这样写:

Terminal window
bencher run \
--host https://api.bencher.example.com \
--project save-walter-white-1234abcd \
--branch main \
--testbed ci-runner \
--adapter json \
bencher mock

备份

备份您的 Bencher 自托管 API 服务器的最简单方法是使用 bencher server backup CLI 子命令。 用户必须是服务器上的管理员才能使用此子命令。

bencher server backup

备份API服务器数据库。

选项

--host <URL>

Bencher 自托管 API 服务器的 URL。 例如,https://api.bencher.example.com

--token <TOKEN>

必须设置--token选项或BENCHER_API_TOKEN环境变量为一个有效的API令牌。如果两者都已指定,则--token选项优先于BENCHER_API_TOKEN环境变量。

--compress

使用 gzip 压缩数据库备份。 此操作优先执行。

--data-store <DATA_STORE>

将数据库备份保存到该数据存储。 此操作第二步执行。

支持的数据存储:

  • aws_s3: 备份到 AWS S3

使用 API 服务器配置的database.data_store部分来设置您的 Bencher 自托管 API 服务器的数据存储。

--remove

删除数据库备份的本地副本。 此操作位于第三步运行。

灾难恢复

为了防止备份之间的数据丢失,Bencher 提供了内置的灾难恢复解决方案。此功能需要有效的 Bencher Plus 许可证。

支持的复制方案:

  • file:复制到本地文件路径
  • sftp:通过 SFTP 复制
  • s3:复制到任何兼容 S3 的对象存储
  • abs:复制到 Azure Blob 存储
  • gcs:复制到谷歌云存储

使用 API 服务器配置中的 plus.disaster_recovery 部分 为您的 Bencher 自托管 API 服务器设置灾难恢复。

🤖 该文档由 OpenAI GPT-4 自动生成。 它可能不准确并且可能包含错误。 如果您发现任何错误,请在 GitHub 上提出问题.


Published: Mon, October 14, 2024 at 6:20:00 AM UTC