Ir para o conteúdo

Containers

Usando as imagens disponíveis do BotCity, você pode ter acesso rapidamente ao BotCity CLI e ao BotCity Runner para o seu projeto.

Usando as imagens disponíveis da BotCity, você pode configurar seu ambiente de desenvolvimento em pouco tempo.

Imagens disponíveis

Atualmente, fornecemos as seguintes imagens:

Nome da Imagem Descrição
botcity-base Imagem BotCity com BotCity Runner e CLI do BotCity Studio SDK
botcity-java-web-firefox Extensão da imagem botcity-base com Java e o navegador Firefox
botcity-java-web-chrome Extensão da imagem botcity-base com Java e o navegador Chrome
botcity-python-web-firefox Extensão da imagem botcity-base com Python 3.9 e o navegador Firefox
botcity-python-web-chrome Extensão da imagem botcity-base com Python 3.9 e o navegador Chrome
botcity-python-desktop Extensão da imagem botcity-base com Python 3.9 e suporte para Desktop

botcity-base é uma imagem base e contém Java, bem como o Runner da BotCity e o CLI. Todas as outras imagens são derivadas desta imagem e adicionam recursos adicionais.

Espelhos

As imagens de contêiner da BotCity estão disponíveis nos seguintes espelhos:

Espelho Prefixo da imagem
Docker Hub botcity/
Amazon AWS ECR public.ecr.aws/

Quando usar qual imagem

Se você pretende simplesmente usar o CLI da BotCity, poderá usar a imagem botcity-base.

Para o desenvolvimento Python em modo headless, você pode escolher a imagem apropriada para o seu projeto, dependendo do seu navegador usado na execução.

Configuração

Para usá-lo, você precisará fornecer as seguintes variáveis de ambiente:

  • SERVER: O prefixo do servidor. Por exemplo: developers para developers.botcity.dev.
  • LOGIN: A informação de login do BotCity Maestro, disponível na página Dev. Environment.
  • KEY: A chave de API do BotCity Maestro, disponível na página Dev. Environment.
  • WORKSPACE: A informação do workspace no BotCity Maestro, disponível na página Dev. Environment.
  • MACHINE_ID: O ID do BotCity Runner a ser utilizado.
  • IGNORE_SSL: (Opcional) Se definido como true, ele ignorará a validação do certificado SSL. Use com cautela!
  • DEBUG_ENABLED: (Opcional) Se definido como true, ele habilitará o modo de depuração e produzirá logs mais verbosos. Use com cautela!

Para obter mais informações sobre a configuração, visite a página Amb. Desenvolvedor.

Uso

Como mencionado acima, esta imagem contém as ferramentas BotCity Runner e BotCity CLI do BotCity Studio SDK.

Eles podem ser lançados através dos comandos BotCLI eBotRunner e todos os parâmetros são encaminhados para as respectivas ferramentas.

Importante

Para os exemplos abaixo, assumiremos que você já tem o início do comando como:

docker run --rm -ti -e WORKSPACE=SEU_WORKSPACE -e SERVER=SEU_SERVER -e LOGIN=SEU_LOGIN -e KEY=SUA_KEY -e MACHINE_ID=SUA_MACHINE_ID

E vamos substituí-lo por <docker config>, então, certifique-se de adaptar o comando de acordo.

O nome da imagem também será exibido como <image name>, então, certifique-se de adaptar o comando de acordo com a imagem e o espelho que você deseja usar.

Atenção

As imagens do Chrome exigem que o parâmetro --shm-size seja definido como pelo menos 1g. Exemplo: --shm-size="1g".

O parâmetro --shm-size permite especificar o tamanho da memória compartilhada disponível para os contêiners em unidades de bytes. Isso é útil em cenários onde você está executando aplicativos dentro de contêiners que fazem uso extensivo de memória compartilhada.

Se você estiver usando docker compose, poderá definir esse parâmetro através do parâmetro shm-size. Veja o exemplo abaixo:

version: "3.0"
services:
  docker-1:
    image: botcity/botcity-python-web-chrome
    command: BotRunner
    environment:
        SERVER: developers
        LOGIN: YOUR_LOGIN
        KEY: YOUR_KEY
        MACHINE_ID: YOUR_MACHINE_ID
    shm_size: '1gb'

BotCity CLI

Para iniciar a ferramenta BotCLI, basta executar o seguinte comando:

<docker config> <image name> BotCLI <parameters here>

Importante

Para implantar ou atualizar um bot ou executar qualquer outra ação que depende de arquivos no disco, você precisará compartilhar esta pasta com o container e ajustar o caminho de acordo.

Para obter mais informações sobre pastas compartilhadas e Docker, visite a documentação do Docker.

Para obter mais informações sobre a ferramenta BotCLI, consulte a documentação do BotCity CLI.

BotCity Runner

Para iniciar a ferramenta Runner, basta executar o seguinte comando:

<docker config> <image name> BotRunner <parameters here>

Importante

Para o Runner da BotCity, a variável de ambiente MACHINE_ID é obrigatória.

Para obter mais informações sobre a ferramenta BotCity Runner, consulte a documentação do BotCity Runner .

Exemplos

Aqui estão alguns exemplos práticos usando as imagens de container acima.

Informações

Para os propósitos deste exemplo, assumiremos o seguinte:

  • Nosso servidor BotCity está em execução em company.botcity.dev
  • Nosso espaço de trabalho da BotCity é company
  • Nosso Login de BotCity é company
  • Nossa chave de BotCity é COM_123ABCBA321
  • Nosso ID da máquina é DOCKER_01

O comando Docker será para todos os casos:

docker run --rm -ti -e WORKSPACE=company -e SERVER=company -e LOGIN=company -e KEY=COM_123ABCBA321 -e MACHINE_ID=DOCKER_01

Criando uma máquina com o CLI da BotCity

Neste exemplo, usaremos a CLI da BotCity para criar uma nova máquina com o machineId como DOCKER_01 usando o espelho AWS ECR.

<docker config> public.ecr.aws/botcity/botcity-base:latest BotCLI machine new -machineId DOCKER_01

O comando explicado:

  • <docker config> é o prefixo de comando que descrevemos no início desta seção -public.ecr.aws/botcity/botcity-base:latest é o nome da imagem, onde botcity-base é o nome e latest é a tag
  • BotCLI é o nome do comando
  • machine new é a ação de comando
  • -machineId DOCKER_01 é o parâmetro utilizado no comando do CLI.

Dica

Para usar o Docker Hub como o espelho, basta alterar o nome da imagem de `public.ecr.aws/botcity/botcity-base:latest para botcity/botcity-base:latest

Implantando um bot com o CLI do BotCity

Neste exemplo, implantaremos uma automação Python disponível no arquivo BotPython-1.0.tar.gz usando o espelho do Docker Hub.

Como precisamos que a CLI da BotCity tenha acesso ao arquivo BotPython-1.0.tar.gz, precisaremos compartilhar a pasta com o contêiner.

<docker config> -v my_code_folder:/code botcity/botcity-base:latest BotCLI bot deploy -version 1.0 -botId BotPython -file /code/BotPython-1.0.tar.gz -python

O comando explicado:

  • <docker config> é o prefixo de comando que descrevemos no início desta seção --v my_code_folder:/code é a pasta com o arquivo BotPython-1.0.tar.gz para compartilhar com o contêiner e /code é o caminho dentro do contêiner -botcity/botcity-base:latest é o nome da imagem onde botcity-base é o nome e latest é a tag
  • BotCLI é o nome do comando
  • bot deploy é a ação de comando --version 1.0 -botId BotPython -file /code/BotPython-1.0.tar.gz -python são os parâmetros enviados ao comando BotCLI bot deploy

BotCity Runner para automações Python Headless com Firefox

Neste exemplo, usaremos o BotCity Runner para executar automações Python que usam o navegador Firefox no modo headless usando o espelho AWS ECR.

<docker config> public.ecr.aws/botcity/botcity-python-web-firefox:latest BotRunner

O comando explicado:

  • <docker config> é o prefixo de comando que descrevemos no início desta seção -public.ecr.aws/botcity/botcity-python-web-firefox:latest é o nome da imagem, onde botcity-python-web-firefox é o nome e latest é a tag
  • BotRunner é o nome do comando

Não são necessários parâmetros adicionais para uma execução padrão do BotCity Runner.

Dica

Você também pode usar o parâmetro -single para executar uma única automação e encerrar a execução do contêiner.

Dica

Para usar o Docker Hub como o espelho, basta alterar o nome da imagem de public.ecr.aws/botcity/botcity-python-web-firefox:latest para botcity/botcity-python-web-firefox:latest.

Personalizando as imagens

Se você precisar personalizar as imagens, poderá criar seu próprio Dockerfile e usar uma das imagens acima como base.

Como exemplo, se você precisar adicionar pacotes adicionais à imagem botcity-python-desktop, poderá criar um Dockerfile como o seguinte:

FROM botcity-python-desktop:latest

# Install System Dependencies
RUN apt-get update && \
     \
    apt-get -y install freerdp2-x11 \
    --no-install-recommends && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

Então você pode construir a imagem usando o seguinte comando:

docker build -t my-botcity-python-desktop:latest .

E então você pode usar a imagem my-botcity-python-desktop:latest em seu projeto.

Importante

Por favor, tenha em mente que as imagens são fornecidas como estão e não fornecemos suporte para imagens personalizadas.

Não sobrescreva as instruções ENTRYPOINT ou CMD no Dockerfile, pois isso quebrará as ferramentas BotCity Runner e BotCity CLI.

Para obter mais informações sobre Dockerfiles e como usá-los, visite a documentação do Docker.

Solução de problemas

Ao usar o espelho da AWS ECR, recebo uma mensagem de erro dizendo pull access denied for public.ecr.aws/botcity/botcity-base, repository does not exist or may require 'docker login': denied: Your authorization token has expired. Reauthenticate and try again.. O que eu faço?

As imagens estão disponíveis publicamente no espelho da AWS ECR, para que você não precise ter credenciais para puxá-las.

Se você estiver recebendo esta mensagem, tente seguir as instruções sobre a documentação da AWS ECR.

Quando tento executar a ferramenta CLI da BotCity, recebo uma mensagem de erro dizendo Login failed. Check your internet connection, server availability or SERVER parameter in config.properties. O que eu faço?

Verifique se você forneceu a variável de ambiente do servidor correta. Se o URL do seu servidor for developers.botcity.dev, a variável de ambiente do servidor correta é developers.

Se a variável de ambiente SERVER estiver correta, verifique se também forneceu as variáveis de login e ambiente corretas.