From de908d547fddfd827acf9295a6a3030b67386ffd Mon Sep 17 00:00:00 2001 From: Frank Date: Sat, 12 Sep 2026 13:43:04 +0200 Subject: [PATCH] Fix .env.prod never reaching the puzzle relay containers docker-compose's env_file loads .env directly into each container's real environment - and Symfony's Dotenv never lets a .env.$APP_ENV file override a variable the platform already set. Since .env.prod was never in the env_file list, PUZZLE_RELAY_PUBLIC_URL kept resolving to the dev default (ws://127.0.0.1:8091) in production instead of the wss://dmtools.fvandenberg.nl/puzzle-ws/ override. Load .env.prod here too, after .env/.env.local, so its values actually win. Co-Authored-By: Claude Sonnet 5 --- docker-compose.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 01bb144..9cc6ea6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -21,10 +21,17 @@ services: context: . dockerfile: docker/php/Dockerfile container_name: dmtools-php + # Real container env vars always beat Symfony's own .env.$APP_ENV cascade + # (that's the point of Dotenv - it never overrides a var the platform + # already set) - so .env.prod has to be loaded here too, or its values + # (e.g. PUZZLE_RELAY_PUBLIC_URL) never reach the app; the plain .env + # default silently wins instead. Order matters: later files win. env_file: - path: .env - path: .env.local required: false + - path: .env.prod + required: false volumes: - .:/var/www/html:cached - php_var:/var/www/html/var @@ -43,6 +50,8 @@ services: - path: .env - path: .env.local required: false + - path: .env.prod + required: false volumes: - .:/var/www/html:cached - php_var:/var/www/html/var