Bencher 自托管


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

部署

部署 Bencher 自托管的最简单方法是使用 bencher CLI 子命令的三联屏:

  • bencher up

    bencher up

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

    bencher up [OPTIONS] [SERVICE]

    服务

    选择要运行的容器。可能的选项有:all、api 和 console。默认选择 all。类似于 docker compose up 的 SERVICE 参数。

    选项

    --detach

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

    --pull <WHEN>

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

    --tag <TAG>

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

    --console-port <PORT>

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

    如果指定了 --console-port 选项, 您还必须更新 API 服务器配置中的 console.url 以匹配新的端口, 可使用 --api-env 选项 或 --api-volume 选项。

    --api-port <PORT>

    为 API 服务器容器指定端口号。 默认使用端口 6610。 类似于 docker run 的 仅端口形式的 --expose 选项。

    如果您指定了 --api-port 选项,您还必须更新 控制台服务的 BENCHER_API_URL 环境变量 以匹配新的端口,并使用 --console-env 选项。

    --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 logs

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

    bencher up [OPTIONS] [SERVICE]

    服务

    选择要运行的容器。 可能的选择有:all、api 和 console。 默认选择是 all。 类似于docker compose logs的 SERVICE 参数。

    选项

    --help

    打印帮助。

  • bencher down

    bencher down

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

    bencher down [OPTIONS] [SERVICE]

    服务

    选择要运行的容器。 可以选择的项有:all、api 和 console。 默认选择all。 类似于 docker compose down 的 SERVICE 参数。

    选项

    --help

    打印帮助。

有关更多详情,请参阅 Bencher Compose 参考文档。

或者,您也可以仅使用 docker compose 来协调这些容器。

docker-compose.yml
services:
bencher_api_compose:
image: ghcr.io/bencherdev/bencher-api:latest
container_name: bencher_api
ports:
- 6610:6610
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:6610
# 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:6610
depends_on:
- bencher_api_compose

有关更多详情,请参阅 Docker Compose 参考示例。

API 服务器网址

在使用 Bencher 自托管版本时,您需要为大多数 bencher CLI 子命令将 --host 选项 设置为您的 Bencher API 服务器的网址。

例如,如果您使用 bencher run CLI 子命令并且 Bencher API 服务器位于 https://api.bencher.example.com,那么您可以这样写:

Terminal window
bencher run \
--host https://api.bencher.example.com \
--project project-abc4567-wxyz123456789 \
--branch main \
--testbed ci-runner \
--adapter json \
bencher mock

如果您在不同的主机上运行 Bencher 控制台服务器和 Bencher API 服务器,您还需要在 Bencher 控制台服务器上设置 BENCHER_API_URL 环境变量 指向 Bencher API 服务器的远程网址。

例如,如果您使用 bencher up CLI 子命令启动 Bencher 控制台服务器,而 Bencher API 服务器运行在 https://api.bencher.example.com 上,那么您需要将 --console-env 选项 设置为远程网址,如下所示:

Terminal window
bencher up --console-env BENCHER_API_URL=https://api.bencher.example.com console

HTTPS

为了设置 HTTPS,可以使用启用 HTTPS 的代理来托管 Bencher 自托管,或者使用具有有效 SSL 证书的域名。

灾难恢复

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

支持的复制方案:

  • file:复制到本地文件路径
  • s3:复制到任何兼容 S3 的对象存储

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

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


Published: Mon, October 14, 2024 at 6:20:00 AM UTC | Last Updated: Sun, October 4, 2026 at 4:59:55 PM UTC