Bencher Self-Hosted


Bencher — это проект с открытым исходным кодом. Он доступен как SaaS, Bencher Cloud, а также как набор контейнерных образов для самостоятельного размещения:

Развертывание

Самый простой способ развернуть Bencher Self-Hosted - это использовать триптих подкоманд CLI bencher:

  • bencher up

    bencher up

    Создание и запуск контейнеров Bencher с самостоятелной хостингом. Это похоже на выполнение команды docker compose up.

    bencher up [OPTIONS] [SERVICE]

    Сервис

    Выберите контейнеры для запуска. Возможные варианты: all, api и console. По умолчанию выбирается all. Аналогично аргументу SERVICE для docker compose up.

    Опции

    --detach

    Запуск в отсоединённом режиме. Контейнеры будут запущены в фоновом режиме. Похоже на флаг --detach для docker compose up.

    --pull <WHEN>

    Загрузка образов перед запуском. Возможные варианты: always, missing и never. По умолчанию выбран вариант always. Аналогично опции --pull для docker compose up.

    --tag <TAG>

    Укажите тег образа для контейнеров. По умолчанию тег образа соответствует версии CLI bencher. Самая последняя версия CLI bencher — это v0.6.13.

    --console-port <PORT>

    Укажите номер порта для контейнера сервера Console. По умолчанию используется порт 3000. Аналогично форме, задающей только порт, у опции --expose для docker run.

    Если вы укажете опцию --console-port, вам также необходимо обновить конфигурацию API‑сервера console.url, чтобы она соответствовала новому порту, используя либо опцию --api-env , либо опцию --api-volume .

    --api-port <PORT>

    Укажите номер порта для контейнера сервера API. По умолчанию используется порт 6610. Эквивалентно форме указания только порта опции --expose для docker run.

    Если вы указываете опцию --api-port, вы также должны обновить переменную окружения Console Server BENCHER_API_URL, чтобы она соответствовала новому порту, используя опцию --console-env.

    --console-env <KEY_VALUE>

    Передайте переменную окружения в контейнер сервера Console. Ожидаемый формат — KEY=value. Это может быть полезно при работе с конфигурацией сервера Console. Аналогично опции --env для docker run.

    --api-env <KEY_VALUE>

    Передайте переменную окружения в контейнер сервера API. Ожидаемый формат - KEY=value. Это может быть полезно при работе с конфигурацией API сервера. Аналогично опции --env для docker run.

    --console-volume <HOST_CONTAINER>

    Передайте том монтирования в контейнер сервера Console. Ожидаемый формат - /host/path:/container/path. Это может быть полезно при работе с конфигурацией сервера Console. Аналогично опции --volume для docker run.

    --api-volume <HOST_CONTAINER>

    Передайте том для монтирования в контейнер сервера API. Ожидаемый формат: /host/path:/container/path. Это может быть полезно при работе с конфигурацией сервера API. Аналогично опции --volume для docker run.

    --help

    Выводит справку.

  • bencher logs

    bencher logs

    Просмотр вывода из контейнеров Bencher в автономном режиме, если bencher up был выполнен с флагом --detach. Это похоже на выполнение команды docker compose logs.

    bencher up [OPTIONS] [SERVICE]

    Сервис

    Выберите контейнеры для запуска. Возможные варианты: all, api и console. По умолчанию выбрано all. Похоже на аргумент SERVICE для docker compose logs.

    Опции

    --help

    Выводит справку.

  • bencher down

    bencher down

    Остановите и удалите контейнеры Bencher Self-Hosted, если bencher up был выполнен с флагом --detach. Это похоже на выполнение команды docker compose down.

    bencher down [OPTIONS] [SERVICE]

    Сервис

    Выберите контейнеры для запуска. Возможные варианты: all, api и console. По умолчанию выбран all. Аналогично аргументу SERVICE для docker compose down.

    Опции

    --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 для получения дополнительной информации.

URL API сервера

При использовании Bencher Self-Hosted, вам нужно будет установить параметр --host на URL вашего Bencher API сервера для большинства подкоманд CLI bencher.

Например, если вы используете подкоманду CLI bencher run с 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 Console на другом хосте, чем Bencher API сервер, вам также нужно будет установить переменную окружения BENCHER_API_URL на сервере Bencher Console на удаленный URL для вашего Bencher API сервера.

Например, если вы используете подкоманду CLI bencher up для запуска сервера Bencher Console с Bencher API сервером по адресу https://api.bencher.example.com, тогда вам нужно будет установить параметр --console-env на удаленный URL следующим образом:

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

HTTPS

Для настройки HTTPS можно использовать Bencher Self-Hosted за прокси с включенным HTTPS или использовать доменное имя с действительным SSL-сертификатом.

Восстановление после сбоя

Чтобы предотвратить потерю данных, Bencher предлагает встроенное решение для восстановления после сбоя. Эта функция требует активной лицензии Bencher Plus.

Поддерживаемые схемы репликации:

  • file: Репликация в локальный путь к файлу
  • s3: Репликация в любое совместимое с S3 хранилище блобов

Используйте раздел plus.disaster_recovery конфигурации API-сервера, чтобы настроить восстановление после сбоя для вашего самостоятельно хостируемого API-сервера Bencher.

🤖 Этот документ был автоматически переведён с помощью ИИ. Он может быть неточным и содержать ошибки. Если вы обнаружите какие-либо ошибки, откройте проблему на GitHub.


Published: Mon, October 14, 2024 at 6:20:00 AM UTC | Last Updated: Fri, June 12, 2026 at 7:00:00 AM UTC