From ba070e0ad5aa4056718d54e92bf883bd10556453 Mon Sep 17 00:00:00 2001 From: dlawler489 <104159223@student.swin.edu.au> Date: Wed, 9 Sep 2026 11:25:42 +1000 Subject: [PATCH] Fix env_file path for Docker-outside-of-Docker deploy The stack manager runs docker compose inside its own container (talking to the host daemon over the mounted socket), so env_file paths resolve against its filesystem, not the host's -- unlike volume bind-mount sources, which the daemon resolves against the real host. Point env_file at the stack manager's own data mount instead. Co-Authored-By: Claude Sonnet 5 --- docker-compose.yml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 506676d..9202b13 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,12 +4,20 @@ services: ports: - "8000:8000" env_file: - # Absolute path, deliberately outside this repo checkout: the stack - # manager re-clones this directory fresh on every deploy, which would - # silently wipe a .env (or bind-mounted data) placed inside it. - - /Users/davidlawler/docker/power-compare-data/.env + # `docker compose` here runs *inside* the stack manager's own + # container (Docker-outside-of-Docker via the mounted host socket), + # so this path is resolved against ITS filesystem, not the host's -- + # it must live under the stack manager's own data mount, in a + # directory outside the git checkout that gets wiped/re-cloned each + # deploy. On this host that's /Users/davidlawler/docker/dockhand, + # bind-mounted into the stack manager container as /app/data. + - /app/data/power-compare-persistent/.env environment: - DB_PATH=/data/power_compare.db volumes: + # Bind-mount SOURCE paths, by contrast, are resolved by the real + # Docker daemon against the actual host filesystem (the daemon isn't + # inside the stack manager's container) -- so this one stays a real + # host path, not an /app/data/... one. - /Users/davidlawler/docker/power-compare-data/data:/data restart: unless-stopped