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
paradevelopers.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:
BotCity CLI¶
Para ejecutar la herramienta BotCLI, simplemente ejecuta el siguiente comando:
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:
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:
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ónpublic.ecr.aws/botcity/botcity-base:latest
es el nombre de la imagen dondebotcity-base
es el nombre ylatest
es la etiquetaBotCLI
es el nombre del comandomachine new
es la acción del comando-machineId DOCKER_01
es el parámetro enviado al comandomachine 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 archivoBotPython-1.0.tar.gz
para compartir con el contenedor, y/code
es la ruta dentro del contenedorbotcity/botcity-base:latest
es el nombre de la imagen dondebotcity-base
es el nombre ylatest
es la etiquetaBotCLI
es el nombre del comandobot 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 comandobot 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.
La explicación del comando:
<configuración de Docker>
es el prefijo del comando que describimos al principio de esta secciónpublic.ecr.aws/botcity/botcity-python-web-firefox:latest
es el nombre de la imagen dondebotcity-python-web-firefox
es el nombre ylatest
es la etiquetaBotRunner
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:
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.