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
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.
- 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:
BotCity CLI¶
Para iniciar a ferramenta BotCLI, basta executar o seguinte comando:
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:
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:
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>
é o prefixo de comando que descrevemos no início desta seção -public.ecr.aws/botcity/botcity-base:latest
é o nome da imagem, ondebotcity-base
é o nome elatest
é a tagBotCLI
é o nome do comandomachine 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 arquivoBotPython-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 ondebotcity-base
é o nome elatest
é a tagBotCLI
é o nome do comandobot 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
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>
é 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, ondebotcity-python-web-firefox
é o nome elatest
é a tagBotRunner
é 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:
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.