# docker-compose.app.yml
# 기본 서비스 정의 (공통 설정)
version: "3.8"

services:
  fems-admin:
    build:
      context: ./fems-admin
      dockerfile: Dockerfile
      target: production
    container_name: fems-admin
    restart: unless-stopped
    env_file:
      - .env.${NODE_ENV:-development}
    ports:
      - "${ADMIN_PORT}:3002"
    environment:
      - NODE_ENV=${NODE_ENV:-development}
    volumes:
      - ./fems-admin:/app
      - /app/node_modules
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
      interval: 30s
      timeout: 10s
      retries: 3
    depends_on:
      - fems-api

  fems-app:
    build:
      context: ./fems-app
      dockerfile: Dockerfile
      target: production
    container_name: fems-app
    restart: unless-stopped
    env_file:
      - .env.${NODE_ENV:-development}
    ports:
      - "${APP_PORT}:3003"
    environment:
      - NODE_ENV=${NODE_ENV:-development}
    volumes:
      - ./fems-app:/app
      - /app/node_modules
    depends_on:
      - fems-api

  fems-api:
    build:
      context: ./fems-api
      dockerfile: Dockerfile
      target: production
    container_name: fems-api
    restart: unless-stopped
    env_file:
      - .env.${NODE_ENV:-development}
    ports:
      - "${API_PORT}:3001"
    environment:
      - NODE_ENV=${NODE_ENV:-development}
    volumes:
      - ./fems-api:/app
      - /app/node_modules
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3001/health"]
      interval: 30s
      timeout: 10s
      retries: 3

  fems-realtime-api:
    build:
      context: ./fems-realtime-api
      dockerfile: Dockerfile
      target: production
    container_name: fems-realtime-api
    restart: unless-stopped
    env_file:
      - .env.${NODE_ENV:-development}
    ports:
      - "${REALTIME_API_PORT}:3004"
    environment:
      - NODE_ENV=${NODE_ENV:-development}
    volumes:
      - ./fems-realtime-api:/app
      - /app/node_modules
    depends_on:
      - fems-api
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3004/health"]
      interval: 30s
      timeout: 10s
      retries: 3

networks:
  default:
    driver: bridge
  internal:
    driver: bridge