Saltar al contenido

Ejecutar Jitterbit App Builder en Docker

Introducción

Puedes ejecutar App Builder como un contenedor de Docker utilizando la imagen de Docker de Jitterbit App Builder y una licencia válida de App Builder.

La imagen de Docker de Jitterbit App Builder es compatible con estas bases de datos:

  • Ediciones Standard o Enterprise x64 de Microsoft SQL Server 2016 o posterior. Esto debe configurarse con la secuencia de ordenación SQL_Latin1_General_CP1_CI_AS y autenticación en modo mixto.

  • MySQL 8.0 o posterior.

  • PostgreSQL 14 o posterior.

Importante

Aunque se debe ejecutar una instancia de App Builder y su base de datos por separado en hosts que cumplan con los requisitos del sistema de App Builder, por simplicidad, estas instrucciones utilizan el mismo host para ambos.

Requisitos previos

Debes tener lo siguiente:

Limitaciones

Las siguientes limitaciones se aplican a App Builder ejecutándose como un contenedor de Docker. (También se aplican a cualquier instalación basada en Linux.)

Soporte para Windows

Estas características de Windows no son compatibles:

  • Autenticación de Active Directory
  • Crystal Reports
  • Suplantación del sistema de archivos
  • Autenticación integrada de Windows (IWA)
  • SAP ABAP
  • Plugins de terceros

Límite de tamaño de carga de archivos

Las cargas de archivos están limitadas a 30,000,000 bytes (28.6 MB) por defecto. Esto es para ayudar a proteger contra ataques de Denegación de Servicio (DoS).

Para aumentar este límite, establece la variable de entorno Kestrel__Limits__MaxRequestBodySize al tamaño máximo de archivo deseado en bytes.

Etiquetas soportadas

Puedes obtener imágenes de Docker utilizando las siguientes etiquetas:

Etiqueta Versión
latest Última compilación de la última versión 4.x
4
4.0 Última compilación de una versión específica 4.x
4.46
4.46.12345 Compilación específica de una versión específica 4.x

Importante

Para mayor estabilidad, deberías usar etiquetas de versión específicas y fijar tu instancia de App Builder a esa compilación. Para elegir una, consulta las notas de la versión o la página de etiquetas de imágenes de Docker.

Iniciar una instancia de App Builder con docker run

Para iniciar una instancia de App Builder que se conecte a una base de datos existente que se ejecute en el mismo host, sigue estos pasos:

  1. Crea un archivo vinyl.env que contenga las siguientes variables de entorno, con valores sustituidos de acuerdo con la tabla a continuación:

    ConnectionInfo__DatabaseType=<DB_TYPE>
    ConnectionInfo__HostName=<DB_HOSTNAME>
    ConnectionInfo__DatabaseName=<DB_NAME>
    ConnectionInfo__Port=<DB_PORT>
    ConnectionInfo__UserName=<DB_USERNAME>
    ConnectionInfo__Password=<DB_PASSWORD>
    
    Valor Reemplazar con
    <DB_TYPE> El tipo de tu base de datos, uno de los siguientes: SQLServer, MySQL o PostgreSql.
    <DB_HOSTNAME> El nombre de host o la dirección IP de tu servidor de base de datos.
    <DB_PORT> (Opcional) El número de puerto en el que se ejecuta tu servicio de base de datos. Valores predeterminados: 1433 (SQL Server), 3306 (MySQL), 5432 (PostgreSQL).
    <DB_NAME> (Opcional) El nombre de la base de datos de App Builder. Predeterminado: Vinyl. Para bases de datos sensibles a mayúsculas como PostgreSQL y MySQL, se recomienda vinyl para seguir las reglas de nombres de la base de datos.
    <DB_USERNAME> El nombre de usuario de la base de datos de App Builder.
    <DB_PASSWORD> La contraseña del usuario de la base de datos de App Builder.

    (Estas y otras variables de entorno se describen en Configurando App Builder al iniciar.)

    Ejemplo para PostgreSQL:

    ConnectionInfo__DatabaseType=PostgreSql
    ConnectionInfo__HostName=host.docker.internal
    ConnectionInfo__DatabaseName=vinyl
    ConnectionInfo__Port=5432
    ConnectionInfo__UserName=postgres
    ConnectionInfo__Password=postgres
    
  2. Inicia el contenedor de Docker:

    docker run --publish "80:8080" --env-file vinyl.env jitterbit/app-builder:4.45
    
  3. Ingresa http://localhost en la barra de direcciones de tu navegador y espera a que se cargue la página de inicio de sesión de App Builder:

    Login

  4. (Opcional) Usa tu navegador, curl, o una herramienta de prueba de API web para hacer una solicitud GET en el punto de verificación de salud del contenedor http://localhost:80/ping. La respuesta debería ser App Builder - OK - YYYY-mm-DDTHH:MM:SSZ, con la fecha y hora expresadas en formato UTC ISO 8601.

  5. Inicia sesión con estas credenciales:

    • Nombre de usuario: admin

    • Contraseña: P@55w0rd (La contraseña predeterminada del administrador de App Builder.)

  6. En la página Contraseña Expirada, cambia la contraseña predeterminada, luego haz clic en la página Guardar Contraseña:

    Change password

  7. En la página Contraseña Cambiada, haz clic en el botón Continuar.

  8. En la página Licencia Activa, haz clic en el botón Subir:

    Active license

  9. En la página Subida de Licencia, haz clic en  Examinar para abrir el explorador de archivos de tu sistema. Busca y abre tu archivo de licencia de App Builder, luego haz clic en el botón Guardar:

    License upload

  10. En la página Subida de Licencia, haz clic en el botón Activar:

    License uploaded

  11. En la página Licencia Activa, haz clic en el botón Iniciar:

    Launch

  12. Se abre la página de bienvenida de App Builder:

    Welcome

Iniciar una instancia de App Builder y una base de datos con docker compose

Los siguientes ejemplos utilizan Docker Compose para iniciar una instancia de App Builder y una base de datos de Microsoft SQL Server.

App Builder con Microsoft SQL Server

Sigue estos pasos:

  1. En un directorio vacío, crea un archivo docker-compose.yml que contenga lo siguiente:

    services:
      db:
        image: mcr.microsoft.com/mssql/server
        hostname: vinyldb
        environment:
          MSSQL_SA_PASSWORD: P@55w0rd
          ACCEPT_EULA: Y
        volumes:
          - ./db_data:/var/opt/mssql/data
    
      vinyl:
        depends_on:
          - db
        image: jitterbit/app-builder:4.0
        ports:
          - 80:8080
        volumes:
          - ./vinyl_data:/app/data
          - ./vinyl_logs:/app/logs
          - ./vinyl_keys:/app/keys
        environment:
          ConnectionInfo__DatabaseType: SQLServer
          ConnectionInfo__HostName: vinyldb
          ConnectionInfo__DatabaseName: vinyl
          ConnectionInfo__UserName: sa
          ConnectionInfo__Password: P@55w0rd
    
    volumes:
      db_data:
      vinyl_data:
      vinyl_logs:
      vinyl_keys:
    
  2. Inicia los servicios:

    docker compose up -d
    
  3. Verifica los archivos de registro en vinyl_logs, montados en el directorio de registros de App Builder /app/logs. (Los otros montajes son /app/keys donde se almacenan las claves de cifrado, y /app/data, el directorio de datos.)

  4. Continúa siguiendo los pasos 3 a 12 de la sección anterior.

App Builder con MySQL

Sigue los mismos pasos que en el ejemplo para Microsoft SQL Server, pero reemplaza el contenido del archivo docker-compose.yml con lo siguiente:

services:
  db:
    image: mysql
    hostname: vinyldb
    environment:
      MYSQL_ROOT_PASSWORD: P@55w0rd
    volumes:
      - db_data:/var/lib/mysql

  vinyl:
    depends_on:
      - db
    image: jitterbit/app-builder:4.0
    ports:
      - 80:8080
    volumes:
      - ./vinyl_data:/app/data
      - ./vinyl_logs:/app/log
      - ./vinyl_keys:/app/keys
    environment:
      ConnectionInfo__DatabaseType: MySQL
      ConnectionInfo__HostName: vinyldb
      ConnectionInfo__DatabaseName: vinyl
      ConnectionInfo__UserName: root
      ConnectionInfo__Password: P@55w0rd

volumes:
  db_data:
  vinyl_data:
  vinyl_logs:
  vinyl_keys:

App Builder con PostgreSQL

Sigue los mismos pasos que en el ejemplo para Microsoft SQL Server, pero reemplaza el contenido del archivo docker-compose.yml con lo siguiente:

services:
  db:
    image: postgres
    hostname: vinyldb
    environment:
      POSTGRES_PASSWORD: postgres
    volumes:
      - db_data: /var/lib/postgresql/data

  vinyl:
    depends_on:
      - db
    image: jitterbit/app-builder:4.0
    ports:
      - 80:8080
    volumes:
      - ./vinyl_data:/app/data
      - ./vinyl_logs:/app/logs
      - ./vinyl_keys:/app/keys
    environment:
      ConnectionInfo__DatabaseType: PostgreSql
      ConnectionInfo__HostName: vinyldb
      ConnectionInfo__DatabaseName: vinyl
      ConnectionInfo__UserName: postgres
      ConnectionInfo__Password: postgres

volumes:
  db_data:
  vinyl_data:
  vinyl_logs:
  vinyl_keys: