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-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.11 e o navegador Firefox |
botcity-python-web-chrome | Extensão da imagem botcity-base com Python 3.11 e o navegador Chrome |
botcity-python-desktop | Extensão da imagem botcity-base com 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:
developers
paradevelopers.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, 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_01
são parâmetros enviados ao comandoBotCLI 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 arquivoBotPython-1.0.tar.gz
para 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 -python
são os parâmetros enviados ao comandoBotCLI 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.