Gestión de Docker
Paquete Java: com.etendoerp.docker
Visión general
Docker es una plataforma que permite a los desarrolladores automatizar el despliegue, el escalado y la gestión de aplicaciones. Utiliza tecnología de contenedorización, que empaqueta una aplicación y sus dependencias en una unidad estandarizada llamada contenedor. Los contenedores pueden ejecutarse de forma consistente en distintos entornos de computación, lo que los hace altamente portables y eficientes.
El módulo com.etendoerp.docker permite el uso de contenedores Dockerizados en Etendo Classic. Esto permite la distribución y encapsulación de nuevas funcionalidades utilizando la infraestructura de módulos existente de Etendo. También proporciona la capacidad de Dockerizar la base de datos, Tomcat o cualquier dependencia de infraestructura actual o futura de Etendo. Además, el módulo incluye tareas de Gradle para gestionar contenedores.
Info
Este módulo incluye la infraestructura para la gestión de contenedores y el servicio de base de datos Postgres, como ejemplo. En caso de que quiera ejecutar otros servicios, añada los módulos correspondientes que implementen la dockerización.
Adicionalmente, la infraestructura podría ampliarse y permite que otros módulos incluyan en ella sus propios contenedores específicos.
Info
Para poder incluir esta funcionalidad, debe instalarse el Platform Extensions Bundle. Para ello, siga las instrucciones del marketplace: Platform Extensions Bundle. Para más información sobre las versiones disponibles, compatibilidad con el core y nuevas funcionalidades, visite Platform Extensions - Notas de la versión.
Requisitos
Este proyecto depende de las siguientes herramientas:
- Docker: versión
26.0.0o superior. - Docker Compose: versión
2.26.0o superior.
Warning
Evite instalar Docker mediante Snap, puede quedar confinado por este sandbox y no tener acceso a directorios del host como /opt/, lo que puede impedir que los contenedores Docker de Etendo se inicien correctamente.
Recomendación: instale Etendo usando la última ISO(que incluye Docker) o instale Docker siguiendo la guía de instalación oficial de su distribución.
Uso de contenedores distribuidos en módulos
Variables de configuración
-
Es necesario incluir al menos una variable de configuración para cada módulo que se vaya a lanzar; esta variable permite que se inicien todos los servicios relacionados con el módulo.
docker_<javapackage>=trueEjemplo:
-
En caso de que quiera configurar solo un servicio perteneciente a un módulo, es posible añadiendo una variable con el formato:
docker_<javapackage>_<service>=trueEjemplo:
Note
En este caso, solo se tendrá en cuenta el servicio de base de datos al levantar y bajar servicios relacionados con el módulo
com.etendoerp.docker. -
También es posible que algunos servicios requieran variables de configuración; en ese caso, deben añadirse:
docker_<javapackage>_<variable>=<value>Ejemplo:
Note
En este ejemplo, esta variable configura el puerto del módulo Servicio de Tomcat Dockerizado, aunque las configuraciones necesarias se incluirán en la documentación de cada módulo.
-
Excluir servicios
Si la configuración de Compose incluye múltiples servicios, puede excluir o personalizar qué servicios se inician listando sus nombres en la siguiente propiedad:
docker.exclude=<service1>,<service2>Ejemplo:
Finalmente, para aplicar siempre los cambios, ejecute
Tareas de Gradle para gestionar contenedores
Ejecute el siguiente comando para usar la infraestructura:
Ejecución
Este comando buscará todos los recursos configurados e iniciará los contenedores.Info
Antes de ejecutar las tareas de compilación de Gradle ./gradlew update.database compile.complete smartbuild, necesita ejecutar ./gradlew resources.up para crear e iniciar realmente los contenedores Docker.
Note
Si solo tiene instalado y configurado el módulo base com.etendoerp.docker, este comando iniciará una base de datos PostgreSQL.
Detención
Este comando detendrá los contenedores.Baja
Este comando detendrá y eliminará los contenedores.Construcción
Este comando fuerza a los servicios que usan un Dockerfile a reconstruir su propia imagen Docker.Info
Este comando debe ejecutarse cuando la proyección o el mapeo se hayan modificado debido a cambios del usuario o a actualizaciones de la gestión de módulos en estas tablas. El comando fuerza al servicio DAS a recompilar y generar nuevas clases antes de iniciar el servicio.
Verificación del estado
Para verificar el estado de los recursos iniciados por Docker Compose, puede usar los siguientes comandos de Docker:
docker ps
Este comando lista todos los contenedores Docker en ejecución. Debería ver los contenedores relacionados con Etendo
docker compose logs
Este comando muestra los logs de todos los servicios definidos en su configuración de Docker Compose, lo que puede ayudar en la resolución de problemas y en verificar que los servicios se están ejecutando correctamente.
Info
También es posible gestionar contenedores con herramientas como Lazydocker o Docker Desktop.
Servicio de base de datos Postgres
En este módulo se incluye un servicio de base de datos Postgres; esto permite usar la base de datos dockerizada en Etendo. Para utilizarlo, deben seguirse los siguientes pasos:
-
Una vez instalado el módulo
com.etendoerp.docker, es necesario añadir una variable de configuración en elgradle.propertiespara habilitar el uso del servicio: -
Luego es necesario ejecutar
./gradlew setup, para aplicar los cambios de configuración. -
Cuando se ejecuta
./gradlew resources.up, se levantará un nuevo contenedor Docker con el servicio de base de datos usando las variables de configuración definidas en elgradle.properties, como puerto, usuario, contraseña, etc.Warning
En caso de que tenga el mismo servicio ejecutándose localmente en el mismo puerto, debería estar dado de baja.
-
Finalmente, usando este servicio es posible ejecutar
./gradlew installpara instalar la base de datos desde cero, o es posible restaurar un backup y comenzar a usar el nuevo servicio de base de datos dockerizado.
This work is licensed under CC BY-SA 2.5 ES by Futit Services S.L..