Instalación en Docker
Instalación
El proyecto provee una imagen que debe ser utilizada tanto para el API Server como para el worker.
<registry>/siu-arai/docs-api:<version>
: Imagen que contiene código de la aplicación y worker
Ej:
Las imágenes son configurables a través de las variables de entorno especificadas en este documento y
lo suficientemente flexibles para correr en cualquier orquestador. A continuación veremos particularidades sobre la imagen Docker de Araí-Documentos y partes del archivo docker-compose.yml
de la instalación rápida para entender la forma básica de trabajo.
Sobre Imagen Docker
La imagen se descarga desde hub.siu.edu.ar:5005/siu-arai/docs-api:1.0.4, para ello se requiere un usuario/password que tenga permisos sobre el proyecto
Entrypoint commands
Las instrucciones en ENTRYPOINT permites configurar el contenedor que esta corriendo o ejecutar comandos sobre el mismo. ENTRYPOINT y CMD (Ver ejemplo en documentación de docker) permiten una forma de identificar que se ejecutara cuando se inicia un container desde una imagen. ENTRYPOINT y CMD se especifican realizar docker run con comandos adicionales como argumentos.
A continuación describiremos los comandos permitidos en la imagen de Araí Documentos:
Entrypoint | Descripcion |
---|---|
--reconfigure | Convierte las Env Vars a los archivos de configuración utilizados por Araí Documentos |
--serve | Deja corriento el servidor apache del contenedor. Se utiliza para dejar un contenedor donde corre la API |
--db-update | Se utiliza tanto para crear la estructura de la base de datos, como para actualizar una versión. En caso de que se desee crear la estructura ver el siguiente comando --create-db |
--create-db | Junto a --db-update crea la base de datos y su estructura |
--worker-mode | Levanta el worker de Araí Documentos. Se utiliza para dejar corriendo un contenedor que mantenga corriendo el worker que se utiliza para notificaciones y comunicaciones asincronicas |
Consideraciones
- El comando reconfigure se ejecuta por default al realizar un docker run sobre una imagen de Araí-Documentos.
- Los comandos de creacion y actualizacion de la base de datos (--db-update y --create-db) son procesos que inician y finalizan en una sola ejecución. Se recomienda correrlos en un contenedor separado, asegurarse que finalizan y luego eliminarlos
- El comando --serve corresponde a la API y debe mantenerse en ejecución en un container separado
- El comando --worker-mode corresponde a un worker utilizado constantemente por Araí Documentos y debe mantenerse en ejecución en un container separado
Iniciando API
version: '3.7'
services:
docs-api:
image: hub.siu.edu.ar:5005/siu-arai/docs-api:1.0.4
ports:
- "8181:80"
env_file:
- ./arai-docs.env
networks:
docs-net:
command:
- -c
- |
php /wait-pg.php $$ARAI_DOCS_DB_HOST 5432 postgres postgres
/entrypoint.sh --reconfigure
/entrypoint.sh --serve
- Se está especificando la imagen
v1.0.4
. Este tag descarga la versión estable de la API. - Se expone el puerto 8181. Este puerto es el punto de ingreso al contenedor.
- Se carga el archivo de entorno
arai-docs.env
. Estos son los defaults encontrados en el árbol de código de la app entemplates/arai-docs.env.dist
- Se ejecuta el script wait-pg que espera que la base este accesible
- Luego los comandos reconfigure y serve, que pasan las Env Vars a los archivos de configuraciones correspondientes y dejan corriento el API Server respectivamente
Iniciando Worker
version: '3.7'
services:
...
docs-worker:
image: hub.siu.edu.ar:5005/siu-arai/docs-api:1.0.4
networks:
docs-net:
entrypoint:
- /bin/sh
restart: always
env_file:
- ./arai-docs.env
command:
- -c
- |
php /wait-pg.php $$ARAI_DOCS_DB_HOST 5432 postgres postgres
/entrypoint.sh --reconfigure
/entrypoint.sh --worker-mode
- Se está especificando la imagen
v1.0.4
. Este tag descarga la versión estable de la API. - Se carga el archivo de entorno
arai-docs.env
. Estos son los defaults encontrados en el árbol de código de la app entemplates/arai-docs.env.dist
- Se ejecuta el script wait-pg que espera que la base este accesible
- Luego los comandos reconfigure y worker-mode, que pasan las Env Vars a los archivos de configuraciones correspondientes y dejan ejecutandose el worker requerido por Araí-Documentos