Bencher Selbstgehostet
Bencher ist Open Source. Es ist verfügbar als SaaS, Bencher Cloud, und als selbst hostbares Set von Container-Images:
- Bencher Console Server
- Bencher API Server
Bereitstellung
Der einfachste Weg, Bencher Self-Hosted bereitzustellen, ist die Verwendung eines Triptychons von bencher CLI-Unterbefehlen:
bencher upbencher upErstellen und starten Sie die Bencher Self-Hosted-Container. Dies ist ähnlich wie das Ausführen von
docker compose up.bencher up [OPTIONS] [SERVICE]Service
Wählen Sie die Container aus, die ausgeführt werden sollen. Die möglichen Optionen sind:
all,apiundconsole. Standardmäßig istallausgewählt. Ähnlich demSERVICE-Argument fürdocker compose up.Optionen
--detachIm getrennten Modus ausführen. Die Container werden im Hintergrund ausgeführt. Ähnlich wie das
--detachFlag fürdocker compose up.--pull <WHEN>Zieht Images, bevor sie ausgeführt werden. Die möglichen Optionen sind:
always,missingundnever. Standardmäßig istalwaysausgewählt. Ähnlich zur--pullOption fürdocker compose up.--tag <TAG>Geben Sie das Image-Tag für die Container an. Standardmäßig entspricht das Image-Tag der
bencherCLI-Version. Die neuestebencherCLI-Version istv0.6.13.--console-port <PORT>Geben Sie eine Portnummer für den Console-Server-Container an. Standardmäßig wird Port
3000verwendet. Ähnlich wie die port-only-Form der Option--exposefürdocker run.Wenn Sie die Option
--console-portangeben, müssen Sie außerdem die API-Server-Konfiguration dieconsole.urlanpassen, damit sie mit dem neuen Port übereinstimmt, und dazu entweder die Option die--api-envoder die Option die--api-volumeverwenden.--api-port <PORT>Legt die Portnummer für den API-Server-Container fest. Standardmäßig wird Port
6610verwendet. Ähnlich wie die reine Port-Form der Option--exposefürdocker run.Wenn Sie die Option
--api-portangeben, müssen Sie außerdem die UmgebungsvariableBENCHER_API_URLdes Console-Servers aktualisieren, damit sie den neuen Port widerspiegelt, und zwar mithilfe der Option--console-env.--console-env <KEY_VALUE>Übergebe eine Umgebungsvariable an den Console-Server-Container. Das erwartete Format ist
KEY=Wert. Dies kann nützlich sein, wenn man mit der Console Server-Konfiguration arbeitet. Ähnlich wie die Option--envfürdocker run.--api-env <KEY_VALUE>Eine Umgebungsvariable an den API-Server-Container übergeben. Das erwartete Format ist
SCHLÜSSEL=Wert. Dies kann nützlich sein, wenn Sie mit der API-Server-Konfiguration arbeiten. Ähnlich wie die die--env-Option fürdocker run.--console-volume <HOST_CONTAINER>Übergeben Sie ein Mount-Volume an den Console-Server-Container. Das erwartete Format ist
/host/path:/container/path. Dies kann nützlich sein, wenn Sie mit der Console Server-Konfiguration arbeiten. Ähnlich zur Option--volumefürdocker run.--api-volume <HOST_CONTAINER>Ein Volume-Mount an den API-Server-Container übergeben. Das erwartete Format ist
/host/path:/container/path. Dies kann nützlich sein, wenn Sie mit der API-Server-Konfiguration arbeiten. Ähnlich wie die Option--volumebeidocker run.--helpHilfe drucken.
bencher logsbencher logsZeigen Sie die Ausgabe von den Bencher Self-Hosted Containern an, wenn
bencher upmit dem--detach-Flag ausgeführt wurde. Dies ist ähnlich dem Ausführen vondocker compose logs.bencher up [OPTIONS] [SERVICE]Dienst
Wählen Sie die zu startenden Container aus. Die möglichen Optionen sind:
all,apiundconsole. Standardmäßig istallausgewählt. Ähnlich demSERVICE-Argument fürdocker compose logs.Optionen
--helpHilfe drucken.
bencher downbencher downStoppen und entfernen der Bencher Self-Hosted Container, wenn
bencher upmit dem--detach-Flag ausgeführt wurde. Dies ist ähnlich wie das Ausführen vondocker compose down.bencher down [OPTIONS] [SERVICE]Service
Wählen Sie die Container, die ausgeführt werden sollen. Die möglichen Optionen sind:
all,apiundconsole. Standardmäßig istallausgewählt. Ähnlich demSERVICEArgument fürdocker compose down.Optionen
--helpHilfe drucken.
Siehe die Bencher Compose Referenz für mehr Details.
Alternativ könnten Sie einfach docker compose verwenden, um die Container zu orchestrieren.
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_composeSiehe das Docker Compose Referenzbeispiel für mehr Details.
API-Server-URL
Wenn Sie Bencher Self-Hosted verwenden, müssen Sie die Option --host auf die URL Ihres Bencher API-Servers für die meisten bencher CLI-Unterbefehle einstellen.
Wenn Sie zum Beispiel den bencher run CLI-Unterbefehl mit einem Bencher API-Server unter https://api.bencher.example.com verwenden, könnten Sie so etwas schreiben:
bencher run \--host https://api.bencher.example.com \--project project-abc4567-wxyz123456789 \--branch main \--testbed ci-runner \--adapter json \bencher mockWenn Sie den Bencher Console-Server auf einem anderen Host als den Bencher API-Server betreiben, müssen Sie auch die Umgebungsvariable BENCHER_API_URL auf dem Bencher Console-Server auf die Remote-URL Ihres Bencher API-Servers einstellen.
Zum Beispiel, wenn Sie den bencher up CLI-Unterbefehl verwenden, um den Bencher Console-Server mit einem Bencher API-Server zu starten, der unter https://api.bencher.example.com läuft, dann müssen Sie die Option --console-env auf die Remote-URL wie folgt einstellen:
bencher up --console-env BENCHER_API_URL=https://api.bencher.example.com consoleHTTPS
Um HTTPS einzurichten, kann Bencher Self-Hosted hinter einem Proxy mit aktiviertem HTTPS verwendet werden oder ein Domainname mit einem gültigen SSL-Zertifikat genutzt werden.
Notfallwiederherstellung
Um Datenverlust zu verhindern, bietet Bencher eine integrierte Notfallwiederherstellungslösung. Diese Funktion erfordert eine aktive Bencher Plus Lizenz.
Unterstützte Replikationsschemata:
file: Replizieren zu einem lokalen Dateipfads3: Replizieren zu einem S3-kompatiblen Blob-Speicher
Verwenden Sie den Abschnitt plus.disaster_recovery der API-Serverkonfiguration, um die Notfallwiederherstellung für Ihren Bencher Self-Hosted API-Server einzurichten.