← Volver al Generador Principal

Configuración de Docker Compose para Spring Boot + MariaDB + Adminer

Cuándo usar esta combinación

Esta arquitectura es ideal para el desarrollo y despliegue de APIs empresariales y microservicios basados en Java que requieren transaccionalidad ACID y persistencia relacional. MariaDB ofrece un motor SQL robusto, optimizado y compatible con MySQL; Spring Boot gestiona la lógica de negocio con alta concurrencia; y Adminer actúa como un cliente web ultraligero (en un solo archivo) que acelera la depuración, ejecución de scripts y validación de esquemas en entornos locales o de pruebas sin sobrecargar los recursos del host.


Variables de entorno críticas para producción

  1. MARIADB_ROOT_PASSWORD: Define la contraseña del superusuario del motor de base de datos. En producción debe ser un secreto criptográficamente seguro y nunca dejarse con valores por defecto o vacíos.
  2. SPRING_DATASOURCE_PASSWORD (alineada con MARIADB_PASSWORD): Clave de acceso del usuario específico de la aplicación. Debe gestionarse mediante secretos externos (Docker Secrets, Vault o variables de entorno inyectadas en CI/CD), evitando credenciales estáticas en el código fuente.
  3. SPRING_PROFILES_ACTIVE: Debe establecerse estrictamente en prod. Esto asegura la desactivación de consolas H2, herramientas de desarrollo (devtools), endpoints expuestos de Actuator sin autenticación y habilita las optimizaciones de caché del framework.

Consejo Senior: Seguridad de superficie de ataque

Elimina por completo el servicio de Adminer en entornos productivos.

Adminer es una herramienta de administración sin capa de autenticación propia (depende únicamente de las credenciales de la base de datos) y su exposición pública representa un vector crítico de ataque por fuerza bruta.

Si requieres administrar MariaDB en producción:

Checklist de Seguridad antes de desplegar