Containers¶
Usando as imagens disponíveis do BotCity, você pode ter acesso rapidamente ao BotCity CLI e ao BotCity Runner para o seu projeto. Você também 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-basecom Java e o navegador Firefox | 
| botcity-java-web-chrome | Extensão da imagem botcity-basecom Java e o navegador Chrome | 
| botcity-python-web-firefox | Extensão da imagem botcity-basecom Python 3.11 e o navegador Firefox | 
| botcity-python-web-chrome | Extensão da imagem botcity-basecom Python 3.11 e o navegador Chrome | 
| botcity-python-desktop | Extensão da imagem botcity-basecom Python 3.11 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.
Alerta
As imagens oferecidas pela BotCity foram construidas para arquiteturas amd64, sugerimos que o host onde você executará os contêineres tenha suporte para esta arquitetura ou tenha um modo de compatibilidade.
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 a execução de automações Web em modo headless, você pode escolher a imagem apropriada para o seu projeto, dependendo do navegador e linguagem usados. Por exemplo, botcity-python-web-firefox ou botcity-java-web-chrome.
Para a execução de automações Python que requerem aplicativo desktop, você pode escolher a imagem botcity-python-desktop.
Configuração¶
Para configurar o ambiente, você pode utilizar as seguintes variáveis de ambiente:
- SERVER: O prefixo do servidor. Por exemplo: developersparadevelopers.botcity.dev.
- LOGIN: A informação de login do BotCity Orquestrador, disponível na página Dev. Environment.
- KEY: A chave de API do BotCity Orquestrador, disponível na página Dev. Environment.
- WORKSPACE: A informação do workspace no BotCity Orquestrador, disponível na página Dev. Environment.
- MACHINE_ID: O ID do BotCity Runner a ser utilizado, disponível na página Runners.
- 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!
Importante
As variáveis de ambiente SERVER, LOGIN, KEY, WORKSPACE são obrigatórias para o funcionamento correto da ferramenta BotCity CLI e MACHINE_ID é obrigatório para o BotCity Runner. As outras variáveis são configurações opcionais.
Para obter os valores para a configuração do ambiente, visite a página Amb. de Desenvolvedor.
Uso¶
As imagens contém as ferramentas BotCity Runner e BotCity CLI do BotCity Maestro SDK.
Eles podem ser lançados através dos comandos BotCLI eBotRunner e todos os parâmetros são encaminhados para as respectivas ferramentas.
BotCity CLI¶
Para iniciar a ferramenta BotCLI, basta executar o seguinte comando:
Importante
Para os exemplos apresentados, assumiremos que você já tem os valores para:
- <docker config>: Referente ao comando de configuração das variáveis de ambiente.
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
- <image name>: Referente ao nome da imagem que você deseja usar.
- <parameters here>: Referente aos parâmetros que você deseja passar para o comando BotCLI.
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:
Importante
Para o Runner da BotCity, a variável de ambiente MACHINE_ID é obrigatória em <docker config>.
Pode ser adicionado o parâmetro -single ao final no comando para executar uma única tarefa e encerrar a execução do contêiner.
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 da BotCity.
Informações
Para os propósitos deste exemplo, assumiremos o seguinte valores:
- 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 <docker config> será para todos os casos:
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.
O comando explicado:
- <docker config>Referente ao comando de configuração das variáveis de ambiente que descrevemos no início desta seção.
- public.ecr.aws/botcity/botcity-base:latesté a imagem utilizada, onde:- botcity-baseé o nome.
- :latesté a tag.
 
- BotCLIé o nome do comando.
- machine newé a ação de comando.
- -machineId DOCKER_01são parâmetros enviados ao comando- BotCLI machine new.
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.
Para 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>Referente ao comando de configuração das variáveis de ambiente que descrevemos no início desta seção.
- -v my_code_folder:/codeé a pasta com o arquivo- BotPython-1.0.tar.gzpara compartilhar com o contêiner- :/codeé o caminho onde o arquivo será salvo dentro do contêiner.
 
- botcity/botcity-base:latesté a imagem utilizada, onde:- botcity-baseé o nome.
- :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 -pythonsão os parâmetros enviados ao comando- BotCLI bot deploy.
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.
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.
O comando explicado:
- <docker config>Referente ao comando de configuração das variáveis de ambiente que descrevemos no início desta seção.
- public.ecr.aws/botcity/botcity-python-web-firefox:latesté a imagem utilizada, onde:- botcity-python-web-firefoxé o nome.
- :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, porém pode utilizar -single para personalizar a execução.
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.
Criando um arquivo compose¶
Você também pode usar o Docker Compose para gerenciar seus contêineres de forma mais eficiente e organizada. Você pode criar um arquivo docker-compose.yml com a seguinte estrutura:
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
E então você pode executar o comando docker-compose up no terminal para iniciar o contêiner.
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:
Dica
Você também pode criar instâncias de Runners diferentes para executar ao mesmo tempo com o Docker Compose, como no exemplo abaixo:
    version: "3.0"
    services:
      docker-1:
        image: botcity/botcity-python-web-chrome
        command: BotRunner
        environment:
            SERVER: YOUR_SERVER
            LOGIN: YOUR_LOGIN
            KEY: YOUR_KEY
            MACHINE_ID: YOUR_MACHINE_ID_1
      docker-2:
        image: botcity/botcity-python-web-chrome
        command: BotRunner
        environment:
            SERVER: YOUR_SERVER
            LOGIN: YOUR_LOGIN
            KEY: YOUR_KEY
            MACHINE_ID: YOUR_MACHINE_ID_2
Personalizando as imagens¶
Se você precisar personalizar as imagens, poderá criar seu próprio Dockerfile e usar uma das imagens da BotCity como base, pois elas já tem todas as ferramentas para o uso dos comandos BotCLI e BotRunner prontas.
Então, a partir de uma imagem existente, você pode adicionar pacotes necessários para o seu projeto.
Como exemplo, usamos a imagem botcity-python-desktop como base e adicionamos o pacote freerdp2-x11 como dependência do projeto.
FROM botcity/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/*
Em seguida constrói-se a imagem usando o seguinte comando:
E então você pode usar a imagem my-botcity-python-desktop-rdp:latest em seu projeto.
version: "3.0"
services:
  docker-1:
    image: my-botcity-python-desktop-rdp
    command: BotRunner
    environment:
        SERVER: YOUR_SERVER
        LOGIN: YOUR
        KEY: YOUR_KEY
        MACHINE_ID: YOUR_MACHINE_ID
Importante
Ao criar uma imagem customizada com o Dockerfile, tenha cuidado para que as instruções ENTRYPOINT ou CMD não sejam sobrescritas, pois isso quebrará as ferramentas BotCity Runner e BotCity CLI. 
Recomendamos como uma boa prática usar a imagem da BotCity como base e adicionar somente as dependências necessárias. 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.