Contenedores¶
Al utilizar las imágenes de BotCity disponibles, puede obtener acceso rápido a BotCity CLI y BotCity Runner para su proyecto. También puedes configurar tu entorno de desarrollo en poco tiempo.
Imágenes disponibles¶
Actualmente, ofrecemos las siguientes imágenes:
Nombre de la imagen | Descripción |
---|---|
botcity-base | Imagen de BotCity con BotCity Runner y CLI del SDK de BotCity Studio |
botcity-java-web-firefox | Extensión de botcity-base con Java y navegador Firefox |
botcity-java-web-chrome | Extensión de botcity-base con Java y navegador Chrome |
botcity-python-web-firefox | Extensión de la imagen botcity-base con Python 3.11 y navegador Firefox |
botcity-python-web-chrome | Extensión de la imagen botcity-base con Python 3.11 y navegador Chrome |
botcity-python-desktop | Extensión de botcity-base con Python 3.11 y soporte para interfaz gráfica |
La imagen botcity-base
es una imagen base y contiene Java, así como BotCity Runner y CLI.
Todas las demás imágenes se derivan de esta imagen y agregan características adicionales.
Alerta
Las imágenes que ofrece BotCity fueron construidas para arquitecturas amd64
, sugerimos que el host donde correrás los contenedores tenga soporte para esta arquitectura o tenga un modo de compatibilidad.
Espejos¶
Las imágenes de contenedor de BotCity están disponibles en los siguientes espejos:
Espejo | Prefijo de imagen |
---|---|
Docker Hub | botcity/ |
Amazon AWS ECR | public.ecr.aws/ |
Cuándo usar cada imagen¶
Si simplemente desea utilizar la CLI de BotCity, puede utilizar la imagen botcity-base
.
Para ejecutar automatizaciones web en modo headless, puedes elegir la imagen adecuada para tu proyecto, según el navegador y el lenguaje de programación utilizado. Por ejemplo, botcity-python-web-firefox
o botcity-java-web-chrome
.
Para ejecutar automatizaciones de Python que requieren una aplicación desktop, puede elegir la imagen botcity-python-desktop
.
Configuración¶
Para configurar tu entorno, puedes utilizar las siguientes variables de ambiente:
- SERVER: El prefijo del servidor. Por ejemplo:
developers
adevelopers.botcity.dev
. - LOGIN: La información de inicio de sesión de BotCity Maestro, disponible en
Entorno de Desarrollo
. - KEY: La clave API de BotCity Maestro, disponible en
Entorno de Desarrollo
. - WORKSPACE: La información del espacio de trabajo en BotCity Maestro, disponible en
Entorno de Desarrollo
. - MACHINE_ID: El ID del BotCity Runner que se utilizará, disponible en la página
Runners
. - IGNORE_SSL: (Opcional) Si se establece en
true
, omitirá la validación del certificado SSL. ¡Úselo con precaución! - DEBUG_ENABLED: (Opcional) Si se establece en
true
, habilitará el modo de depuración y producirá registros más detallados. ¡Usa con precaución!
Importante
Las variables de ambiente SERVER
, LOGIN
, KEY
, WORKSPACE
son obligatorias para el funcionamiento correcto de la herramienta BotCity CLI y MACHINE_ID
es obligatorio para BotCity Runner. Las otras variables son configuraciones opcionales.
Para obtener más información sobre la configuración, visita la página Ambiente de desarrollo.
Uso¶
Las imágenes contienen las herramientas BotCity Runner y BotCity CLI del SDK de BotCity Studio.
Se puede ejecutar a través de los comandos BotCLI
y BotRunner
, y todos los parámetros se transmiten a las herramientas respectivas.
BotCity CLI¶
Para ejecutar la herramienta BotCLI, simplemente ejecuta el siguiente comando:
Importante
Para los ejemplos presentados, asumiremos que ya tienes los valores para:
<configuración de Docker>
: se refiere al comando para configurar las variables de entorno.
docker run --rm -ti -e WORKSPACE=TU_ESPACIO_DE_TRABAJO -e SERVER=TU_SERVIDOR -e LOGIN=TU_INICIO_DE_SESIÓN -e KEY=TU_CLAVE -e MACHINE_ID=TU_ID_DE_MÁQUINA
<nombre de la imagen>
: Se refiere al nombre de la imagen que desea utilizar.
<parámetros aquí>
: se refiere a los parámetros que desea pasar al comando BotCLI.
Para obtener más información sobre la herramienta BotCLI, consulta la documentación de BotCity CLI.
BotCity Runner¶
Para ejecutar la herramienta Runner, simplemente ejecuta el siguiente comando:
Important
Para BotCity Runner, la variable de ambiente MACHINE_ID
es obligatoria en
Puede añadirse el parámetro -single
al final del comando para ejecutar una única tarea y finalizar la ejecución del contenedor.
Para obtener más información sobre la herramienta BotCity Runner, consulta la documentación de BotCity Runner.
Ejemplos¶
Aquí tienes algunos ejemplos prácticos utilizando las imágenes de contenedor anteriores.
Info
Para los propósitos de este ejemplo, asumiremos lo siguiente:
- Nuestro servidor de BotCity se está ejecutando en
company.botcity.dev
- Nuestro espacio de trabajo de BotCity es
company
- Nuestro inicio de sesión de BotCity es
company
- Nuestra clave de BotCity es
COM_123ABCBA321
- Nuestro ID de máquina es
DOCKER_01
El
Crear una máquina con BotCity CLI¶
En este ejemplo, utilizaremos BotCity CLI para crear una nueva máquina con el machineId
como DOCKER_01
utilizando el espejo de AWS ECR.
<configuración de Docker> public.ecr.aws/botcity/botcity-base:latest BotCLI machine new -machineId DOCKER_01
La explicación del comando:
<configuración de Docker>
Se refiere al comando de configuración de variables de entorno que describimos al comienzo de esta sección.public.ecr.aws/botcity/botcity-base:latest
es la imagen utilizada, donde:botcity-base
es el nombre.:latest
es la etiqueta.
BotCLI
es el nombre del comando.machine new
es la acción del comando.-machineId DOCKER_01
son parámetros enviados al comandoBotCLI machine new
.
Tip
Para utilizar Docker Hub como espejo, simplemente cambia el nombre de la imagen de public.ecr.aws/botcity/botcity-base:latest
a botcity/botcity-base:latest
.
Implementar un bot con BotCity CLI¶
En este ejemplo, implementaremos una automatización de Python disponible en el archivo BotPython-1.0.tar.gz
utilizando el espejo de Docker Hub.
Dado que necesitamos que BotCity CLI tenga acceso al archivo BotPython-1.0.tar.gz
, deberemos compartir la carpeta con el contenedor.
<configuración de Docker> -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
La explicación del comando:
<configuración de Docker>
Se refiere al comando de configuración de variables de entorno que describimos al comienzo de esta sección.-v my_code_folder:/code
es la carpeta con el archivoBotPython-1.0.tar.gz
para compartir con el contenedor.:/code
es la ruta donde se guardará el archivo dentro del contenedor.
botcity/botcity-base:latest
es la imagen utilizada, donde:botcity-base
es el nombre.:latest
es la etiqueta.
BotCLI
es el nombre del comando.bot deploy
es la acción del comando.-version 1.0 -botId BotPython -file /code/BotPython-1.0.tar.gz -python
son los parámetros que se pasan al comandoBotCLI bot deployment
.
Important
Para implementar o actualizar un bot o realizar cualquier otra acción que dependa de archivos en el disco, deberás compartir esta carpeta con el contenedor y ajustar la ruta en consecuencia.
Para obtener más información sobre carpetas compartidas y Docker, visita la documentación de Docker.
BotCity Runner para automatizaciones de Python sin interfaz gráfica con Firefox¶
En este ejemplo, utilizaremos BotCity Runner para ejecutar automatizaciones de Python que utilizan el navegador Firefox en modo sin interfaz gráfica utilizando el espejo de AWS ECR.
La explicación del comando:
<configuración de Docker>
Se refiere al comando para configurar las variables de entorno que describimos al comienzo de esta sección.public.ecr.aws/botcity/botcity-python-web-firefox:latest
es la imagen utilizada, donde:botcity-python-web-firefox
es el nombre.:latest
es la etiqueta.
BotRunner
es el nombre del comando.
No se requieren parámetros adicionales para una ejecución estándar de BotCity Runner, pero puedes usar -single
para personalizar la ejecución.
Tip
Para utilizar Docker Hub como espejo, simplemente cambia el nombre de la imagen de public.ecr.aws/botcity/botcity-python-web-firefox:latest
a botcity/botcity-python-web-firefox:latest
.
Creando un archivo compose¶
También puedes utilizar Docker Compose para administrar tus contenedores de forma más eficiente y organizada. Puede crear un archivo docker-compose.yml
con la siguiente estructura:
version: "3.0"
services:
docker-1:
image: botcity/botcity-python-web-chrome
command: BotRunner
environment:
SERVER: developers
LOGIN: TU_INICIO_DE_SESIÓN
KEY: TU_CLAVE
MACHINE_ID: TU_ID_DE_MÁQUINA
Y luego puedes ejecutar el comando docker-compose up
en la terminal para iniciar el contenedor.
Advertencia
Las imágenes de Chrome requieren que se establezca el parámetro --shm-size
en al menos 1g
. Ejemplo: --shm-size="1g"
.
El parámetro --shm-size
te permite especificar el tamaño de memoria compartida disponible para los contenedores en unidades de bytes. Esto es útil en escenarios donde ejecutas aplicaciones dentro de contenedores que utilizan extensivamente la memoria compartida.
Si estás utilizando docker compose, puedes establecer este parámetro a través del parámetro shm-size
. Consulta el ejemplo a continuación:
Consejo
También puedes crear diferentes instancias de Runner para que se ejecuten al mismo tiempo con Docker Compose, como en el siguiente ejemplo:
version: "3.0"
services:
docker-1:
image: botcity/botcity-python-web-chrome
command: BotRunner
environment:
SERVER: developers
LOGIN: TU_INICIO_DE_SESIÓN
KEY: TU_CLAVE
MACHINE_ID: TU_ID_DE_MÁQUINA_1
docker-2:
image: botcity/botcity-python-web-chrome
command: BotRunner
environment:
SERVER: developers
LOGIN: TU_INICIO_DE_SESIÓN
KEY: TU_CLAVE
MACHINE_ID: TU_ID_DE_MÁQUINA_2
Personalización de las imágenes¶
Si necesitas personalizar las imágenes, puedes crear tu propio Dockerfile y utilizar una de las imágenes de BotCity como base, ya tienen todas las herramientas para utilizar los comandos BotCLI y BotRunner listas.
Luego, desde una imagen existente, puedes agregar los paquetes necesarios para tu proyecto.
Como ejemplo, utilizamos la imagen botcity-python-desktop
como base y agregamos el paquete freerdp2-x11
como dependencia del proyecto.
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/*
Luego puedes construir la imagen utilizando el siguiente comando:
Y luego puedes utilizar la imagen my-botcity-python-desktop-rdp:latest
en tu proyecto.
version: "3.0"
services:
docker-1:
image: my-botcity-python-desktop-rdp
command: BotRunner
environment:
SERVER: developers
LOGIN: TU_INICIO_DE_SESIÓN
KEY: TU_CLAVE
MACHINE_ID: TU_ID_DE_MÁQUINA
Importante
Al crear una imagen personalizada con Dockerfile, tenga cuidado de que las instrucciones ENTRYPOINT
o CMD
no se sobrescriban, ya que esto romperá las herramientas BotCity Runner y BotCity CLI.
Recomendamos como mejor práctica utilizar la imagen de BotCity como base y agregar solo las dependencias necesarias.
Para obtener más información sobre Dockerfiles y cómo usarlos, visita la documentación de Docker.
Solución de problemas¶
Cuando uso el espejo de AWS ECR, obtengo un mensaje de error que dice 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.
. ¿Qué debo hacer?
Las imágenes están disponibles públicamente en el espejo de AWS ECR, por lo que no necesitas credenciales para descargarlas.
Si estás recibiendo este mensaje, por favor intenta seguir las instrucciones en la documentación de AWS ECR.
Cuando intento ejecutar la herramienta de línea de comandos de BotCity, obtengo un mensaje de error que dice Login failed. Check your internet connection, server availability or SERVER parameter in config.properties
. ¿Qué debo hacer?
Asegúrate de haber proporcionado la variable de ambiente SERVER correcta.
Si la URL de tu servidor es developers.botcity.dev
, entonces la variable de ambiente SERVER correcta es developers
.
Si la variable de ambiente SERVER
es correcta, entonces asegúrate de haber proporcionado también las variables de ambiente LOGIN y KEY correctas.