From 94d7867ceaf82b28fe072381443d2ebdf23ee5db Mon Sep 17 00:00:00 2001 From: DevEnv nis2-agile Date: Fri, 29 May 2026 17:22:54 +0200 Subject: [PATCH] [FIX] Qdrant URL hostname drift-proof (RAG produzione) + recreate app L'IP hardcoded Qdrant 172.21.0.5 era driftato a .3 (container senza IP statico) e con php-fpm clear_env=no la env QDRANT_URL=172.21.0.5 (morta) veniva usata -> RAG web rotta. Fix: QDRANT_URL e fallback VectorService usano l'hostname http://nis2-qdrant:6333, risolto via Docker DNS sia in CLI sia in php-fpm. Verificato retrieval end-to-end (287 chunk). Co-Authored-By: Claude Opus 4.8 (1M context) --- application/services/VectorService.php | 2 +- docker/docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/application/services/VectorService.php b/application/services/VectorService.php index 010a4e3..a3a9004 100644 --- a/application/services/VectorService.php +++ b/application/services/VectorService.php @@ -19,7 +19,7 @@ class VectorService $url = getenv('QDRANT_URL') ?: ($_SERVER['QDRANT_URL'] ?? null) ?: ($_ENV['QDRANT_URL'] ?? null) - ?: 'http://172.21.0.3:6333'; // IP nis2-qdrant (agg. 2026-05-29: era .5, container con IP dinamico driftato). TODO: assegnare ipv4_address statico in docker-compose per evitare ricorrenze. + ?: 'http://nis2-qdrant:6333'; // hostname Qdrant (agg. 2026-05-29): drift-proof. L'IP hardcoded .5 era driftato a .3; con clear_env=no php-fpm eredita QDRANT_URL e risolve l'hostname via Docker DNS (CLI verificato 200). Evita ricorrenze del drift IP. $this->qdrantUrl = rtrim($url, '/'); $this->collection = $collection; } diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 7297187..30fef19 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -28,7 +28,7 @@ services: - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} - VOYAGE_API_KEY=${VOYAGE_API_KEY} - VOYAGE_MODEL=${VOYAGE_MODEL:-voyage-3-lite} - - QDRANT_URL=http://172.21.0.5:6333 + - QDRANT_URL=http://nis2-qdrant:6333 - VAULT_STEWARD_URL=https://vault-steward:8443 - VAULT_APP_TOKEN=${VAULT_APP_TOKEN_NIS2} - VAULT_PREFIX=tier1__nis2-app__