Ir para o conteúdo

Execute o Jitterbit App Builder no Docker

Introdução

Você pode executar o App Builder como um contêiner Docker usando a imagem Docker do Jitterbit App Builder e uma licença válida do App Builder.

A imagem Docker do App Builder do Jitterbit suporta os seguintes bancos de dados:

  • Edições Standard ou Enterprise x64 do Microsoft SQL Server 2016 ou posterior. Isso deve ser configurado com a sequência de collation SQL_Latin1_General_CP1_CI_AS e autenticação em modo misto.

  • MySQL 8.0 ou posterior.

  • PostgreSQL 14 ou posterior.

Importante

Embora você deva executar uma instância do App Builder e seu banco de dados separadamente em hosts que atendam aos requisitos de sistema do App Builder, para simplificar, estas instruções usam o mesmo host para ambos.

Pré-requisitos

Você deve ter o seguinte:

Limitações

As seguintes limitações se aplicam ao App Builder executando como um contêiner Docker. (Elas também se aplicam a qualquer instalação baseada em Linux.)

Suporte ao Windows

Os seguintes recursos do Windows não são suportados:

  • Autenticação do Active Directory
  • Crystal Reports
  • Impersonação do sistema de arquivos
  • Autenticação Integrada do Windows (IWA)
  • SAP ABAP
  • Plugins de terceiros

Limite de tamanho de upload de arquivo

Os uploads de arquivos são limitados a 30.000.000 bytes (28,6 MB) por padrão. Isso é para ajudar a proteger contra ataques de Negação de Serviço (DoS).

Para aumentar esse limite, defina a variável de ambiente Kestrel__Limits__MaxRequestBodySize para o tamanho máximo de arquivo desejado em bytes.

Tags suportadas

Você pode puxar imagens do Docker usando as seguintes tags:

Tag Versão
latest Última versão da última série 4.x lançada
4
4.0 Última versão de uma série específica 4.x
4.46
4.46.12345 Versão específica de uma série específica 4.x

Importante

Para estabilidade, você deve usar tags de versão específicas e fixar sua instância do App Builder a essa versão. Para escolher uma, consulte as notas de versão ou a página de tags de imagem do Docker.

Iniciar uma instância do App Builder com docker run

Para iniciar uma instância do App Builder que se conecta a um banco de dados existente em execução no mesmo host, siga estas etapas:

  1. Crie um arquivo vinyl.env contendo as seguintes variáveis de ambiente, com valores substituídos de acordo com a tabela abaixo:

    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 Substitua por
    <DB_TYPE> O tipo do seu banco de dados, um dos seguintes: SQLServer, MySQL ou PostgreSql.
    <DB_HOSTNAME> O nome do host ou o endereço IP do seu servidor de banco de dados.
    <DB_PORT> (Opcional) O número da porta em que seu serviço de banco de dados está em execução. Padrões: 1433 (SQL Server), 3306 (MySQL), 5432 (PostgreSQL).
    <DB_NAME> (Opcional) O nome do banco de dados do App Builder. Padrão: Vinyl. Para bancos de dados sensíveis a maiúsculas e minúsculas, como PostgreSQL e MySQL, recomenda-se vinyl para seguir as regras de nomenclatura do banco de dados.
    <DB_USERNAME> O nome de usuário do banco de dados do App Builder.
    <DB_PASSWORD> A senha do usuário do banco de dados do App Builder.

    (Essas e outras variáveis de ambiente estão descritas em Configurando o App Builder na inicialização.)

    Exemplo para PostgreSQL:

    ConnectionInfo__DatabaseType=PostgreSql
    ConnectionInfo__HostName=host.docker.internal
    ConnectionInfo__DatabaseName=vinyl
    ConnectionInfo__Port=5432
    ConnectionInfo__UserName=postgres
    ConnectionInfo__Password=postgres
    
  2. Inicie o contêiner Docker:

    docker run --publish "80:8080" --env-file vinyl.env jitterbit/app-builder:4.45
    
  3. Digite http://localhost na barra de endereços do seu navegador e aguarde a página de login do App Builder:

    Login

  4. (Opcional) Use seu navegador, curl ou uma ferramenta de teste de API web para fazer uma solicitação GET no endpoint de verificação de saúde do contêiner http://localhost:80/ping. A resposta deve ser App Builder - OK - YYYY-mm-DDTHH:MM:SSZ, com a data e hora expressas no formato ISO 8601 UTC.

  5. Faça login com estas credenciais:

    • Nome de usuário: admin

    • Senha: P@55w0rd (A senha padrão do administrador do App Builder.)

  6. Na página Senha Expirada, altere a senha padrão e clique na página Salvar Senha:

    Alterar senha

  7. Na página Senha Alterada, clique no botão Continuar.

  8. Na página Licença Ativa, clique no botão Carregar:

    Licença ativa

  9. Na página Upload de Licença, clique em  Procurar para abrir o navegador de arquivos do seu sistema. Encontre e abra seu arquivo de licença do App Builder, em seguida, clique no botão Salvar:

    Upload de licença

  10. Na página Upload de Licença, clique no botão Ativar:

    Licença carregada

  11. Na página Licença Ativa, clique no botão Iniciar:

    Iniciar

  12. A página de boas-vindas do App Builder é aberta:

    Boas-vindas

Iniciar uma instância do App Builder e banco de dados com docker compose

Os seguintes exemplos usam o Docker Compose para iniciar uma instância do App Builder e um banco de dados Microsoft SQL Server.

App Builder com Microsoft SQL Server

Siga estas etapas:

  1. Em um diretório vazio, crie um arquivo docker-compose.yml contendo o seguinte:

    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. Inicie os serviços:

    docker compose up -d
    
  3. Verifique os arquivos de log em vinyl_logs, montados no diretório de logs do App Builder /app/logs. (As outras montagens são /app/keys, onde as chaves de criptografia são armazenadas, e /app/data, o diretório de dados.)

  4. Continue seguindo as etapas 3 a 12 da seção anterior.

App Builder com MySQL

Siga as mesmas etapas do exemplo para Microsoft SQL Server, mas substitua o conteúdo do arquivo docker-compose.yml pelo seguinte:

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 com PostgreSQL

Siga as mesmas etapas do exemplo para Microsoft SQL Server, mas substitua o conteúdo do arquivo docker-compose.yml pelo seguinte:

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: