# Single compose file for BOTH prod and dev. # # Environment-specific values (project / image / container / network names) are # supplied via env vars resolved from the project-dir ".env" file # (in prod and dev that is a symlink -> .env.production). The defaults below are # the PRODUCTION values, so prod works with no extra vars; the dev worktree's # .env.production sets WEB_PROJECT / WEB_IMAGE / WEB_CONTAINER / WEB_NETWORK. name: ${WEB_PROJECT:-web} services: web: build: context: . dockerfile: Dockerfile args: NEXT_PUBLIC_SUPABASE_URL: ${NEXT_PUBLIC_SUPABASE_URL} NEXT_PUBLIC_SUPABASE_ANON_KEY: ${NEXT_PUBLIC_SUPABASE_ANON_KEY} NEXT_PUBLIC_APP_URL: ${NEXT_PUBLIC_APP_URL} image: ${WEB_IMAGE:-web:1.0.0} container_name: ${WEB_CONTAINER:-web} restart: unless-stopped security_opt: - no-new-privileges:true env_file: - .env.production expose: - "3000" networks: - default healthcheck: test: ["CMD", "wget", "-qO-", "http://127.0.0.1:3000/"] interval: 30s timeout: 5s retries: 3 start_period: 10s networks: default: name: ${WEB_NETWORK:-edge} external: true