Descripción del episodio
En este episodio profundizamos en la optimización de tus sistemas Docker. El objetivo de hoy: implementar nuevas y mejores prácticas para que tus contenedores sean más estables y eficientes. Si buscas cómo sacar el máximo partido a tu infraestructura autoalojada, esta es tu guía.Uno de los problemas más comunes al trabajar con Docker Compose es que los servicios dependientes (como una aplicación web o un servidor de correo) intentan conectarse a la base de datos antes de que esta haya terminado de arrancar, provocando errores.Te muestro mi solución PRO para esto: utilizamos la combinación de la directiva depends_on con la condición service_healthy.Esta configuración asegura que servicios críticos como Gitea (mi servicio de alojamiento de repositorios Git) y Stalwart (mi servidor de correo) solo se inician cuando su respectiva base de datos PostgreSQL ha pasado su chequeo de salud y está lista para aceptar conexiones. Esto garantiza una secuencia de inicio robusta y sin fallos, una mejora fundamental en la gestión de tus datos y sistemas.Gitea : Vemos cómo configurar el healthcheck para la base de datos PostgreSQL usando pg_isready y cómo el servicio Gitea espera por esta condición. También optimizamos el tráfico interno del runner de Gitea para que use la red interna de Docker (http://gitea:3000), reduciendo la carga de Traefik y mejorando la seguridad.Stalwart : En el caso de mi cliente de correo, he migrado la base de datos de RocketDB a PostgreSQL. La razón es sencilla: PostgreSQL es más transparente y me permite integrar sin esfuerzo mi contenedor personalizado (atareao/postgres-backup:latest) para hacer copias de seguridad eficientes y automatizadas.En este episodio, también te presento una nueva herramienta que me ha encantado: Dockpeek