services:
  frontend:
    # dev에서는 Docker Desktop 시작 시 자동 실행 방지 (수동 up 때만 실행)
    restart: "no"
    build:
      target: build-stage
    command: npm run dev -- --host 0.0.0.0 --port 80
    ports:
      - "${FRONTEND_PORT}:80"
    environment:
      - CHOKIDAR_USEPOLLING=true
      - WATCHPACK_POLLING=true
    volumes:
      - ./${FRONTEND_DIR}:/app
      - /app/node_modules
    # dev에서는 리버스 프록시 미사용 — base의 networks 목록을 덮어씀
    networks: !override
      - app-network

  backend:
    # dev에서는 Docker Desktop 시작 시 자동 실행 방지 (수동 up 때만 실행)
    restart: "no"
    build:
      target: builder
    command: npm run start:dev
    ports:
      - "${BACKEND_PORT}:${BACKEND_PORT}"
      - "${WEBSOCKET_PORT}:${WEBSOCKET_PORT}"
    environment:
      - CHOKIDAR_USEPOLLING=true
      - WATCHPACK_POLLING=true
    volumes:
      - ./${BACKEND_DIR}:/app
      - /app/node_modules
    # dev에서는 리버스 프록시 미사용 — base의 networks 목록을 덮어씀
    networks: !override
      - app-network

  db:
    # dev에서는 Docker Desktop 시작 시 자동 실행 방지 (base 의 always 를 덮어씀)
    restart: "no"
    ports:
      - "${DB_PORT}:5432"

  redis:
    # dev에서는 Docker Desktop 시작 시 자동 실행 방지 (base 의 always 를 덮어씀)
    restart: "no"
    ports:
      - "${REDIS_PORT}:6379"

# base의 proxy 외부 네트워크 의존을 dev에서 제거
networks:
  proxy: !reset null