Bencher Autohébergé
Bencher est open source. Il est disponible en tant que SaaS, Bencher Cloud, et comme un ensemble d’images de conteneurs auto-hébergeables :
- Serveur Console Bencher
- Serveur API Bencher
Déploiement
La façon la plus simple de déployer Bencher Self-Hosted est d’utiliser un triptyque de sous-commandes CLI bencher :
bencher upbencher upCréer et démarrer les conteneurs Bencher en auto-hébergement. Ceci est similaire à l’exécution de
docker compose up.bencher up [OPTIONS] [SERVICE]Service
Sélectionnez les conteneurs à exécuter. Les choix possibles sont :
all,api, etconsole. Par défaut,allest choisi. Semblable à l’argumentSERVICEpourdocker compose up.Options
--detachExécuter en mode détaché. Les conteneurs seront exécutés en arrière-plan. Similaire au drapeau
--detachpourdocker compose up.--pull <WHEN>Tirez les images avant de les exécuter. Les choix possibles sont :
always,missing, etnever. Par défaut,alwaysest choisi. Semblable à l’option--pullpourdocker compose up.--tag <TAG>Spécifiez le tag de l’image pour les conteneurs. Par défaut, le tag de l’image correspond à la version du CLI
bencher. La version la plus récente du CLIbencherestv0.6.13.--console-port <PORT>Spécifiez un numéro de port pour le conteneur du serveur Console. Par défaut, le port
3000est utilisé. Semblable à la forme ne précisant que le port de l’option--exposepourdocker run.Si vous spécifiez l’option
--console-port, vous devez également mettre à jour la configuration du serveur APIconsole.urlpour qu’elle corresponde au nouveau port, en utilisant soit l’option--api-env, soit l’option--api-volume.--api-port <PORT>Spécifiez un numéro de port pour le conteneur du serveur API. Par défaut, le port
6610est utilisé. Similaire à la forme « port uniquement » de l’option--exposepourdocker run.Si vous spécifiez l’option
--api-port, vous devez également mettre à jour la variable d’environnementBENCHER_API_URLdu Console Server pour qu’elle corresponde au nouveau port, en utilisant l’option –console-env.--console-env <KEY_VALUE>Passez une variable d’environnement au conteneur du serveur Console. Le format attendu est
KEY=value. Cela peut être utile lors de la configuration du serveur Console. Similaire à l’option--envpourdocker run.--api-env <KEY_VALUE>Passez une variable d’environnement au conteneur du serveur API. Le format attendu est
KEY=value. Cela peut être utile lors de l’utilisation de la configuration du serveur API. Similaire à l’option--envpourdocker run.--console-volume <HOST_CONTAINER>Passez un volume de montage au conteneur du serveur Console. Le format attendu est
/host/path:/container/path. Cela peut être utile lors du travail avec la configuration du serveur Console. Similaire à l’option--volumepourdocker run.--api-volume <HOST_CONTAINER>Passez un volume de montage au conteneur du serveur API. Le format attendu est
/host/path:/container/path. Cela peut être utile lors de l’utilisation de la configuration du serveur API. Similaire à l’option--volumepourdocker run.--helpImprimer l’aide.
bencher logsbencher logsAfficher la sortie des conteneurs Bencher en auto-hébergement, si
bencher upa été exécuté avec le drapeau--detach. Ceci est similaire à l’exécution dedocker compose logs.bencher up [OPTIONS] [SERVICE]Service
Sélectionnez les conteneurs à exécuter. Les choix possibles sont :
all,apietconsole. Par défaut,allest choisi. Similaire à l’argumentSERVICEpourdocker compose logs.Options
--helpImprimer l’aide.
bencher downbencher downArrêter et supprimer les conteneurs Bencher Self-Hosted, si
bencher upa été exécuté avec l’option--detach. Ceci est similaire à l’exécution dedocker compose down.bencher down [OPTIONS] [SERVICE]Service
Sélectionnez les conteneurs à exécuter. Les choix possibles sont :
all,api, etconsole. Par défaut,allest choisi. Similaire à l’argumentSERVICEpourdocker compose down.Options
--helpImprimer l’aide.
Voir la référence Bencher Compose pour plus de détails.
Alternativement, vous pouvez simplement utiliser docker compose pour orchestrer les conteneurs.
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_composeVoir l’exemple de référence Docker Compose pour plus de détails.
URL du serveur API
Lors de l’utilisation de Bencher Self-Hosted,
vous devrez configurer l’option --host
à l’URL de votre serveur API Bencher
pour la plupart des sous-commandes du CLI bencher.
Par exemple, si vous utilisez la sous-commande CLI bencher run
avec un serveur API Bencher à https://api.bencher.example.com
vous pourriez écrire quelque chose comme ceci :
bencher run \--host https://api.bencher.example.com \--project project-abc4567-wxyz123456789 \--branch main \--testbed ci-runner \--adapter json \bencher mockSi vous exécutez le serveur Bencher Console sur un hôte différent de celui du serveur API Bencher,
vous devrez également configurer la variable d’environnement BENCHER_API_URL
sur le serveur Bencher Console pour l’URL distante de votre serveur API Bencher.
Par exemple, si vous utilisez la sous-commande CLI bencher up
pour démarrer le serveur Bencher Console avec un serveur API Bencher s’exécutant à https://api.bencher.example.com
vous devrez configurer l’option --console-env sur l’URL distante comme ceci :
bencher up --console-env BENCHER_API_URL=https://api.bencher.example.com consoleHTTPS
Pour configurer HTTPS, vous pouvez utiliser Bencher Self-Hosted derrière un proxy avec HTTPS activé ou utiliser un nom de domaine avec un certificat SSL valide.
Récupération après sinistre
Afin de prévenir la perte de données, Bencher propose une solution intégrée de récupération après sinistre. Cette fonctionnalité nécessite une licence Bencher Plus active.
Schémas de réplication pris en charge :
file: Répliquer vers un chemin de fichier locals3: Répliquer vers tout stockage d’objets compatible S3
Utilisez la section plus.disaster_recovery de la configuration du serveur API pour configurer la récupération après sinistre de votre serveur API Bencher Self-Hosted.