From f8686bb2b7e4a24eb933546b97dfb64c5dcdc522 Mon Sep 17 00:00:00 2001 From: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com> Date: Fri, 13 Mar 2026 13:45:40 +0100 Subject: [PATCH] Add reproducer for coolify#8953: .env not found with preserve repository (#65) Minimal Docker Compose example that triggers the deployment failure when Preserve Repository is enabled with a custom start command containing variable interpolation. Co-authored-by: Claude Opus 4.6 --- docker-compose-preserve-repo-env/README.md | 38 +++++++++++++++++++ .../docker-compose.prod.yaml | 3 ++ .../docker-compose.yaml | 5 +++ 3 files changed, 46 insertions(+) create mode 100644 docker-compose-preserve-repo-env/README.md create mode 100644 docker-compose-preserve-repo-env/docker-compose.prod.yaml create mode 100644 docker-compose-preserve-repo-env/docker-compose.yaml diff --git a/docker-compose-preserve-repo-env/README.md b/docker-compose-preserve-repo-env/README.md new file mode 100644 index 0000000..cb564e9 --- /dev/null +++ b/docker-compose-preserve-repo-env/README.md @@ -0,0 +1,38 @@ +# Reproducer for coolify#8953 + +Minimal Docker Compose app that uses `${WEB_PORT}` variable interpolation to +reproduce the `.env not found` error when **Preserve Repository** is enabled +with a custom start command. + +## Steps to reproduce + +1. In Coolify, create a **Docker Compose** application pointing to this + repository subdirectory (`docker-compose-preserve-repo-env`). +2. Add an environment variable: `WEB_PORT=9090`. +3. In **Advanced** settings, enable **Preserve Repository**. +4. Set the custom start command to: + ``` + docker compose -f docker-compose.yaml -f docker-compose.prod.yaml up -d + ``` +5. Deploy. + +### Expected (after fix) + +Deployment succeeds. `--project-directory` in the `up -d` command points to +`/data/coolify/applications/{uuid}` (host path where `.env` exists). + +### Actual (before fix) + +Deployment fails with: + +``` +env file /artifacts/{deployment_uuid}/.env not found +``` + +Because `--project-directory` was set to `/artifacts/{deployment_uuid}` (helper +container path), and Docker Compose resolves `env_file` directives relative to +that directory. + +## Related + +- https://github.com/coollabsio/coolify/issues/8953 diff --git a/docker-compose-preserve-repo-env/docker-compose.prod.yaml b/docker-compose-preserve-repo-env/docker-compose.prod.yaml new file mode 100644 index 0000000..070b28e --- /dev/null +++ b/docker-compose-preserve-repo-env/docker-compose.prod.yaml @@ -0,0 +1,3 @@ +services: + web: + restart: always diff --git a/docker-compose-preserve-repo-env/docker-compose.yaml b/docker-compose-preserve-repo-env/docker-compose.yaml new file mode 100644 index 0000000..993a4c8 --- /dev/null +++ b/docker-compose-preserve-repo-env/docker-compose.yaml @@ -0,0 +1,5 @@ +services: + web: + image: nginx:alpine + ports: + - "${WEB_PORT:-8080}:80"