Saltar a contenido

Contenedores

Utilizando las imágenes disponibles de BotCity, puedes tener acceso rápidamente a BotCity CLI y BotCity Runner para tu proyecto.

Utilizando las imágenes disponibles de BotCity, puedes configurar tu ambiente de desarrollo en poco tiempo.

Imágenes disponibles

Actualmente proporcionamos 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.9 y navegador Firefox
botcity-python-web-chrome Extensión de la imagen botcity-base con Python 3.9 y navegador Chrome
botcity-python-desktop Extensión de botcity-base con Python 3.9 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.

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 solo deseas utilizar BotCity CLI, puedes utilizar la imagen botcity-base.

Para el desarrollo de Python sin interfaz gráfica, puedes elegir la imagen adecuada para tu proyecto según el navegador en tiempo de ejecución.

Configuración

Para poder utilizarlo, deberás proporcionar las siguientes variables de ambiente:

  • SERVER: El prefijo del servidor. Ejemplo: developers para developers.botcity.dev.
  • LOGIN: La información de inicio de sesión de BotCity Maestro disponible en la página Ambiente de desarrollo.
  • KEY: La información de clave de BotCity Maestro disponible en la página Ambiente de desarrollo.
  • WORKSPACE: La información del espacio de trabajo de BotCity Maestro disponible en la página Ambiente de desarrollo.
  • MACHINE_ID: El ID de la máquina que se utilizará por BotCity Runner.
  • IGNORE_SSL: (Opcional) Si se establece en true, ignorará la validación del certificado SSL. ¡Usa 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!

Para obtener más información sobre la configuración, visita la página Ambiente de desarrollo.

Uso

Como se mencionó anteriormente, esta imagen contiene las herramientas BotCity Runner y BotCity CLI del SDK de BotCity Studio.

Puedes ejecutarlas mediante los comandos BotCLI y BotRunner, y todos los parámetros se transmiten a las herramientas respectivas.

Important

Para los ejemplos de uso a continuación, asumiremos que ya tienes el comienzo del comando como:

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

Y lo reemplazaremos con <configuración de Docker>, así que asegúrate de adaptar el comando en consecuencia.

El nombre de la imagen también se mostrará como <nombre de la imagen>, así que asegúrate de adaptar el comando en consecuencia para la imagen y el espejo que deseas utilizar.

Warning

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:

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 ejecutar la herramienta BotCLI, simplemente ejecuta el siguiente comando:

<configuración de Docker> <nombre de la imagen> BotCLI <parámetros aquí>

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.

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:

<configuración de Docker> <nombre de la imagen> BotRunner <parámetros aquí>

Important

Para BotCity Runner, la variable de ambiente MACHINE_ID es obligatoria.

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 comando de Docker será el mismo para todos los casos:

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

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> es el prefijo del comando que describimos al principio de esta sección
  • public.ecr.aws/botcity/botcity-base:latest es el nombre de la imagen donde botcity-base es el nombre y latest es la etiqueta
  • BotCLI es el nombre del comando
  • machine new es la acción del comando
  • -machineId DOCKER_01 es el parámetro enviado al comando machine new de BotCLI

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> es el prefijo del comando que describimos al principio de esta sección
  • -v my_code_folder:/code es la carpeta con el archivo BotPython-1.0.tar.gz para compartir con el contenedor, y /code es la ruta dentro del contenedor
  • botcity/botcity-base:latest es el nombre de la imagen donde botcity-base es el nombre y 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 enviados al comando bot deploy de BotCLI

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.

<configuración de Docker> public.ecr.aws/botcity/botcity-python-web-firefox:latest BotRunner

La explicación del comando:

  • <configuración de Docker> es el prefijo del comando que describimos al principio de esta sección
  • public.ecr.aws/botcity/botcity-python-web-firefox:latest es el nombre de la imagen donde botcity-python-web-firefox es el nombre y 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.

Tip

También puedes utilizar el parámetro -single para ejecutar una sola automatización y finalizar la ejecución del contenedor.

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.

Personalización de las imágenes

Si necesitas personalizar las imágenes, puedes crear tu propio Dockerfile y utilizar una de las imágenes anteriores como base.

Como ejemplo, si necesitas agregar paquetes adicionales a la imagen botcity-python-desktop, puedes crear un Dockerfile como el siguiente:

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/*

Luego puedes construir la imagen utilizando el siguiente comando:

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

Y luego puedes utilizar la imagen my-botcity-python-desktop:latest en tu proyecto.

Importante

Ten en cuenta que las imágenes se proporcionan tal cual y no proporcionamos soporte para imágenes personalizadas.

No sobrescribas las instrucciones ENTRYPOINT o CMD en el Dockerfile, ya que romperá las herramientas BotCity Runner y BotCity CLI.

Para obtener más información sobre los Dockerfiles y cómo utilizarlos, 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.