From cf13b44e0d65d3a685d5e819b97e34cfff8c24ee Mon Sep 17 00:00:00 2001 From: Gabriel Radureau Date: Wed, 8 Apr 2026 00:03:49 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix:=20properly=20detect=20Docke?= =?UTF-8?q?r=20container=20vs=20native=20execution?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Enhance getPostgresHost() to detect Docker environment - Check multiple Docker-specific indicators - Use container name when running inside Docker - Use localhost when running natively - Fix BDD test PostgreSQL connection issues Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe --- pkg/bdd/testserver/server.go | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/pkg/bdd/testserver/server.go b/pkg/bdd/testserver/server.go index 4ef4e0d..d3425c9 100644 --- a/pkg/bdd/testserver/server.go +++ b/pkg/bdd/testserver/server.go @@ -17,15 +17,27 @@ import ( ) // getPostgresHost returns the appropriate PostgreSQL host based on environment -// Uses DLC_DATABASE_HOST environment variable or defaults appropriately +// Uses DLC_DATABASE_HOST environment variable or detects execution context func getPostgresHost() string { host := os.Getenv("DLC_DATABASE_HOST") if host != "" { return host } - // Default to localhost for native execution, container name for Docker - // When running natively but PostgreSQL is in Docker, use localhost (port mapping) - // When running in Docker containers, use container name + + // Detect if we're running inside a Docker container + // Check for Docker-specific environment variables or files + if os.Getenv("DOCKER_CONTAINER") != "" || + os.Getenv("KUBERNETES_SERVICE_HOST") != "" || + os.Getenv("container") == "docker" { + return "dance-lessons-coach-postgres" // Use container name in Docker + } + + // Check for .dockerenv file (Docker-specific) + if _, err := os.Stat("/.dockerenv"); err == nil { + return "dance-lessons-coach-postgres" // Use container name in Docker + } + + // Default to localhost for native execution (PostgreSQL port mapping) return "localhost" }