services: # Lightweight proxy: gives Caddy the labels to route mintel.localhost → host Mac proxy: image: alpine:latest command: sleep infinity restart: unless-stopped networks: - infra labels: - "caddy=http://${TRAEFIK_HOST:-mintel.localhost}" - "caddy.reverse_proxy=host.docker.internal:3000" # Full Docker dev (use with `pnpm run dev:docker`) app: build: context: . dockerfile: Dockerfile.dev restart: unless-stopped working_dir: /app volumes: - .:/app - node_modules:/app/node_modules - apps_node_modules:/app/apps/web/node_modules - ../at-mintel:/at-mintel - pnpm_store:/pnpm # Cache pnpm store env_file: - .env environment: - NODE_ENV=development - NEXT_TELEMETRY_DISABLED=1 # - CI=true - NPM_TOKEN=${NPM_TOKEN:-} command: > sh -c "pnpm install --no-frozen-lockfile && pnpm --filter @mintel/web dev" networks: - default - infra labels: - "traefik.enable=true" - "traefik.http.services.${PROJECT_NAME:-mintel-me}.loadbalancer.server.port=3000" - "traefik.docker.network=infra" - "caddy=http://${TRAEFIK_HOST:-mintel.localhost}" - "caddy.reverse_proxy={{upstreams 3000}}" networks: default: name: ${PROJECT_NAME:-mintel-me}-internal infra: external: true volumes: node_modules: apps_node_modules: pnpm_store: