Saltar a contenido

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 a developers.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:

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

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.
botcity/botcity-base:latest
  • <parámetros aquí>: se refiere a los parámetros que desea pasar al comando BotCLI.
machine status --mid "vm-01"

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

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 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> 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 comando BotCLI 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 archivo BotPython-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 comando BotCLI 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.

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

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:

  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'

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:

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

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.