Configurando Bases de Datos y Servicios Necesarios en las Apps de Inlaze

Resumen

Esta receta proporciona una guía para configurar las bases de datos y servicios necesarios para las aplicaciones de Inlaze utilizando Docker. Se utilizarán archivos docker-compose preconfigurados para levantar los servicios de PostgreSQL, MongoDB, Redis, Redis Commander, Kafka, Zookeeper y Kafdrop.

Descripción

Para facilitar la configuración y gestión de las bases de datos y otros servicios esenciales en las aplicaciones de Inlaze, se utiliza un repositorio Docker preconfigurado. Este repositorio contiene los archivos necesarios para levantar todos los servicios requeridos mediante Docker Compose, simplificando así el proceso de instalación y configuración.

Prerrequisitos

  • Docker instalado

  • Docker Compose instalado

  • Git instalado

Casos de Uso

  • Configurar rápidamente un entorno de desarrollo con todas las bases de datos y servicios necesarios para las aplicaciones de Inlaze.

  • Asegurar que todos los desarrolladores trabajen con un entorno de servicios consistente.

  • Facilitar la puesta en marcha de los servicios en un entorno de producción o staging.

Instrucciones Paso a Paso

1. Clonar el Repositorio Docker

Clona el repositorio que contiene la configuración Docker para los servicios necesarios:

git clone https://github.com/sport-enlace-sas/docker
cd docker

2. Estructura del Repositorio

El repositorio tiene la siguiente estructura de carpetas:

├───db/
│   ├───.env
│   └───docker-compose.yaml
├───docs/
│   └───docker_windows.md
├───entrypoint/
│   ├───docker_postgres_init.sql
│   └───mongo-init.js
├───env/
│   ├───.kafka.env
│   ├───.mongo.env
│   ├───.pgbouncer.env
│   └───.postgres.env
├───kafka/
│   ├───.env
│   └───docker-compose.yaml
└───README.md

3. Configurar y Levantar los Servicios de Bases de Datos

Las variables de entorno están preconfiguradas, por lo que solo tendrás que ejecutar Docker Compose para levantar todos los servicios necesarios. Para configurar y levantar los servicios de bases de datos, navega al directorio db y ejecuta el siguiente comando:

cd db
docker-compose up -d

Este comando levantará los siguientes servicios:

  • PostgreSQL 16

  • MongoDB

  • Redis

  • Redis Commander

4. Configurar y Levantar los Servicios de Kafka

Para configurar y levantar los servicios de Kafka, navega al directorio kafka y ejecuta el siguiente comando:

cd kafka
docker-compose up -d

Este comando levantará los siguientes servicios:

  • Kafka

  • Zookeeper

  • Kafdrop

Validación

  1. Verificar Servicios de Bases de Datos:

    • Accede a Redis Commander en http://localhost:8081 para verificar que Redis está corriendo.

    • Accede a MongoDB y PostgreSQL utilizando un cliente adecuado (por ejemplo, MongoDB Compass y pgAdmin).

  2. Verificar Servicios de Kafka:

    • Accede a Kafdrop en http://localhost:9000 para verificar que Kafka y Zookeeper están corriendo.

Solución de Problemas

  • Servicios no Inician: Verifica que Docker y Docker Compose están instalados correctamente y que no hay conflictos de puertos en tu máquina.

  • Problemas de Conexión: Asegúrate de que las variables de entorno están correctamente configuradas y que los contenedores Docker están corriendo sin errores.

  • Errores en los Logs: Revisa los logs de los contenedores Docker para identificar y solucionar problemas específicos. Puedes usar el comando docker-compose logs para obtener más detalles.

Preguntas Frecuentes

  • ¿Puedo personalizar las configuraciones de los servicios?

    • Sí, puedes editar los archivos .env y docker-compose.yaml para ajustar las configuraciones según tus necesidades específicas.

  • ¿Es posible agregar más servicios a esta configuración?

    • Sí, puedes agregar más servicios a los archivos docker-compose.yaml según sea necesario para tu entorno de desarrollo o producción.

Recursos Adicionales

Conclusión

Siguiendo esta receta, has configurado correctamente las bases de datos y servicios necesarios para las aplicaciones de Inlaze utilizando Docker. Esta configuración te permite tener un entorno de desarrollo consistente y fácilmente replicable, facilitando la colaboración y el despliegue de las aplicaciones.

Last updated