Coolify's build context and runtime mount paths don't share the repo tree the way a plain docker compose up does — the bind mount of ./nginx/default.conf failed at container start because the host path didn't exist. Switch to a build: context: ./nginx pattern (same as the signup service) so the config is baked into the image at build time.