Bencher Self-Hosted
Bencherはオープンソースです。 SaaSであるBencher Cloud、そしてセルフホスト可能なコンテナイメージのセットとして利用可能です:
- Bencherコンソールサーバー
- Bencher APIサーバー
デプロイメント
ベンチャーセルフホステッドをデプロイする最も簡単な方法は、bencher CLI のサブコマンドの三連画を使用することです:
bencher upbencher upBencher セルフホスト型コンテナを作成して開始します。 これは
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>コンテナのイメージタグを指定します。 デフォルトでは、イメージタグは
bencherCLI のバージョンと一致します。最新のbencherCLI のバージョンはv0.5.6です。--console-port <PORT>Consoleサーバーコンテナのポート番号を指定します。 デフォルトでは、ポート
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 logsbencher logsBencherセルフホスト型コンテナからの出力を表示します。 もしも
bencher upが--detachフラグを使用して実行された場合です。 これはdocker compose logsを実行することに似ています。bencher up [OPTIONS] [SERVICE]サービス
実行するコンテナを選択します。 選択可能なオプションは、
all、api、およびconsoleです。 デフォルトではallが選択されています。docker compose logsのSERVICE引数と似ています。オプション
--helpヘルプを表示します。
bencher downbencher downBencherのセルフホスティングコンテナを停止し、削除します。ただし、
--detachフラグと共にbencher upを実行した場合に限ります。これはdocker compose downを実行するのと類似しています。bencher down [OPTIONS] [SERVICE]サービス
実行するコンテナを選択します。 選択肢は
all、api、consoleです。 デフォルトではallが選択されます。docker compose downのSERVICE引数に似ています。オプション
--helpヘルプを表示します。
詳細については、ベンチャーコンポーズ リファレンスを参照してください。
あるいは、単に docker compose を使用してコンテナをオーケストレーションすることもできます。
docker-compose.yml
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詳細な情報については、Docker コンポーズ リファレンス例を参照してください。
APIサーバーURL
Bencherセルフホスティングを使用する場合、
ほとんどのbencher CLIサブコマンドで
Bencher APIサーバーのURLに--hostオプションを設定する必要があります。
例えば、https://api.bencher.example.comでBencher APIサーバーを使って
bencher run CLIサブコマンドを使用する場合、
次のように記述できます。
bencher run \--host https://api.bencher.example.com \--project project-abc4567-wxyz123456789 \--branch main \--testbed ci-runner \--adapter json \bencher mockBencher ConsoleサーバーをBencher APIサーバーとは異なるホストで実行する場合、
Bencher Consoleサーバーで
Bencher APIサーバーのリモートURLにBENCHER_API_URL環境変数を設定する必要があります。
例えば、https://api.bencher.example.comで稼働しているBencher APIサーバーで
Bencher Consoleサーバーを起動するためにbencher up CLIサブコマンドを使用する場合、
以下のようにリモートURLに--console-envオプションを設定する必要があります。
bencher up --console-env BENCHER_API_URL=https://api.bencher.example.com consoleHTTPS
HTTPS を設定するには、Bencher Self-Hosted を HTTPS が有効になっているプロキシの背後に配置するか、有効な SSL 証明書を持つドメイン名を使用することができます。
バックアップ
Bencher Self-Hosted APIサーバーをバックアップする最も簡単な方法は、
bencher server backup CLIサブコマンドを使用することです。
このサブコマンドを使用するには、ユーザーはサーバーの管理者である必要があります。
bencher server backup
bencher server backup
APIサーバーデータベースのバックアップ。
オプション
--host <URL>
Bencher Self-Hosted APIサーバーのURL。
例えば、https://api.bencher.example.com。
--token <TOKEN>
--tokenオプションまたはBENCHER_API_TOKEN環境変数のいずれかを、有効なAPIトークンとして設定する必要があります。
両方が指定されている場合、--tokenオプションがBENCHER_API_TOKEN環境変数よりも優先されます。
--compress
データベースバックアップを gzip で圧縮します。
この操作は最初に実行されます。
--data-store <DATA_STORE>
データベースバックアップをこのデータストアに保存します。この操作は2番目に実行されます。
サポートされているデータストア:
aws_s3: AWS S3へのバックアップ
Bencher Self-Hosted APIサーバーのデータストアを設定するには、APIサーバーの設定ファイル内の database.data_store セクションを使用してください。
--remove
ローカルコピーのデータベースバックアップを削除します。 この操作は3番目に実行されます。
ディザスタリカバリ
バックアップ間でのデータ損失を防ぐために、Bencherは組み込みのディザスタリカバリソリューションを提供します。 この機能にはアクティブなBencher Plusライセンスが必要です。
サポートされているレプリケーションスキーム:
file: ローカルファイルパスへレプリケーションsftp: SFTP経由でレプリケーションs3: S3互換の任意のブロブストレージへレプリケーションabs: Azure Blob Storageへレプリケーションgcs: Google Cloud Storageへレプリケーション
Bencher Self-Hosted APIサーバー用のディザスタリカバリを設定するには、APIサーバー設定のplus.disaster_recoveryセクションを使用してください。