Bencher Autoalojado


Bencher es código abierto. Está disponible como un SaaS, Bencher Cloud, y como un conjunto de imágenes de contenedor autoalojables:

Despliegue

La manera más fácil de desplegar Bencher Self-Hosted es utilizando un tríptico de subcomandos bencher CLI:

bencher up

Crea e inicia los contenedores autoalojados de Bencher. Esto es similar a ejecutar docker compose up.

bencher up [OPTIONS] [SERVICE]

Servicio

Seleccione los contenedores para ejecutar. Las opciones posibles son: all, api y console. Por defecto se elige all. Similar al argumento SERVICE para docker compose up.

Opciones

--detach

Ejecutar en modo separado. Los contenedores se ejecutarán en segundo plano. Similar a la opción --detach para docker compose up.

--pull <WHEN>

Extraer imágenes antes de ejecutar. Las opciones posibles son: always, missing y never. Por defecto, se elige always. Similar a la opción --pull para docker compose up.

--tag <TAG>

Especifica la etiqueta de imagen para los contenedores. Por defecto, la etiqueta de imagen coincide con la versión de la CLI de bencher. La versión más reciente de la CLI de bencher es v0.4.22.

--console-port <PORT>

Especifica un número de puerto para el contenedor del servidor de la Consola. Por defecto, se utiliza el puerto 3000. Similar a la forma solo puerto de la opción --expose para docker run.

--api-port <PORT>

Especifica un número de puerto para el contenedor del servidor API. Por defecto, se utiliza el puerto 61016. Similar a la forma solo de puerto de la opción --expose para docker run.

--console-env <KEY_VALUE>

Pasa una variable de entorno al contenedor del servidor de la Consola. El formato esperado es LLAVE=valor. Esto puede ser útil cuando se trabaja con la configuración del Servidor de Consola. Similar a la opción --env para docker run.

--api-env <KEY_VALUE>

Pasa una variable de entorno al contenedor del servidor API. El formato esperado es KEY=value. Esto puede ser útil cuando se trabaja con la configuración del servidor API. Similar a la opción --env para docker run.

--console-volume <HOST_CONTAINER>

Pasa un volumen de montaje al contenedor del servidor de consola. El formato esperado es /host/path:/container/path. Esto puede ser útil al trabajar con la configuración del Servidor de Consola. Similar a la opción --volume para docker run.

--api-volume <HOST_CONTAINER>

Pasa un volumen de montaje al contenedor del servidor de la API. El formato esperado es /host/path:/container/path. Esto puede ser útil al trabajar con la configuración del servidor de API. Similar a la opción --volume para docker run.

--help

Imprimir ayuda.

bencher logs

Vea la salida de los contenedores autoalojados de Bencher, si bencher up se ejecutó con el indicador --detach. Esto es similar a ejecutar docker compose logs.

bencher up [OPTIONS] [SERVICE]

Servicio

Seleccione los contenedores a ejecutar. Las opciones posibles son: all, api y console. Por defecto, se elige all. Similar al argumento SERVICE para docker compose logs.

Opciones

--help

Imprimir ayuda.

bencher down

Detener y eliminar los contenedores de Bencher Self-Hosted, si bencher up se ejecutó con la opción --detach. Esto es similar a ejecutar docker compose down.

bencher down [OPTIONS] [SERVICE]

Servicio

Seleccione los contenedores para ejecutar. Las opciones posibles son: all, api y console. Por defecto se elige all. Similar al argumento SERVICE para docker compose down.

Opciones

--help

Imprimir ayuda.

Alternativamente, puedes simplemente usar docker compose para orquestar los contenedores. Este es un ejemplo de archivo docker-compose.yml:

version: "3.9"
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

URL del Host

Cuando utilices Bencher Self-Hosted, necesitarás establecer la opción --host al URL de tu servidor API de Bencher para la mayoría de los subcomandos de la CLI de bencher.

Por ejemplo, si estuvieras usando el subcomando de la CLI bencher run con un servidor API de Bencher en https://api.bencher.example.com entonces podrías escribir algo como esto:

Terminal window
bencher run \
--host https://api.bencher.example.com \
--project save-walter-white-1234abcd \
--branch main \
--testbed ci-runner \
--adapter json \
bencher mock

Copias de seguridad

La manera más sencilla de hacer una copia de seguridad de tu servidor API de Bencher autoalojado es usando el subcomando de línea de comandos bencher server backup. El usuario debe ser un administrador en el servidor para usar este subcomando.

bencher server backup

Realiza una copia de seguridad de la base de datos del servidor API.

Opciones

--host <URL>

La URL del servidor API de Bencher Self-Hosted. Por ejemplo, https://api.bencher.example.com.

--token <TOKEN>

O bien la opción --token o la variable de entorno BENCHER_API_TOKEN debe configurarse con un token de API válido. Si se especifican ambos, la opción --token tiene prioridad sobre la variable de entorno BENCHER_API_TOKEN.

--compress

Comprime la copia de seguridad de la base de datos con gzip. Esta operación se ejecuta primero.

--data-store <DATA_STORE>

Guarde la copia de seguridad de la base de datos en este almacén de datos. Esta operación se ejecuta en segundo lugar.

Almacenes de datos compatibles:

  • aws_s3: Copia de seguridad en AWS S3

Utilice la sección database.data_store de la configuración del servidor API para configurar el almacén de datos para su servidor API Bencher Self-Hosted.

--remove

Elimina la copia local de la copia de seguridad de la base de datos. Esta operación se ejecuta en tercer lugar.

Recuperación ante Desastres

Para prevenir la pérdida de datos entre copias de seguridad, Bencher ofrece una solución de recuperación ante desastres integrada. Esta función requiere una licencia activa de Bencher Plus.

Esquemas de replicación soportados:

  • file: Replicar a una ruta de archivo local
  • sftp: Replicar por SFTP
  • s3: Replicar a cualquier almacenamiento de blobs compatible con S3
  • abs: Replicar a Azure Blob Storage
  • gcs: Replicar a Google Cloud Storage

Utilice la sección plus.disaster_recovery de la configuración del servidor API para configurar la recuperación ante desastres en su servidor API autogestionado de Bencher.

🤖 Este documento fue generado automáticamente por OpenAI GPT-4. Puede que no sea exacto y contenga errores. Si encuentra algún error, abra un problema en GitHub.


Published: Mon, October 14, 2024 at 6:20:00 AM UTC