services:
  web_client:
    container_name: web_client
    build:
      context: ./client
      dockerfile: Dockerfile
    ports:
      - ${CLIENT_PORT}:5173
    restart: always

  # redis_db:
  #   image: "redis:alpine"
  #   container_name: redis_db
  #   ports:
  #     - ${REDIS_PORT}:${REDIS_PORT}
  #   environment:
  #     - REDIS_PASSWORD=${REDIS_PASSWORD}
  #   command: [ "redis-server", "--requirepass", "${REDIS_PASSWORD}" ]
  #   volumes:
  #     - ./redis_data:/data
  #   expose:
  #     - ${REDIS_PORT}:${REDIS_PORT}
  #   restart: unless-stopped

  ems:
    container_name: ems
    build:
      context: ./ems
      dockerfile: Dockerfile
    volumes:
      - ./ems/public:/app/public
    # links:
    #   - redis_db:redis_db
    #   - psql_db:psql_db
    # depends_on:
    #   - redis_db
    #   - psql_db
    environment:
      - REDIS_PASSWORD=${REDIS_PASSWORD}
      - REDIS_HOST=${REDIS_HOST}
      - REDIS_PORT=${REDIS_PORT}
      - EMS_PORT=${EMS_PORT}
      - DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@psql_db:${POSTGRES_PORT}/${POSTGRES_DB}?schema=public
    ports:
      - ${EMS_PORT}:${EMS_PORT}
    restart: always
  
  # monitor:
  #   container_name: monitor
  #   build:
  #     context: ./monitor
  #     dockerfile: Dockerfile
  #   environment:
  #     - MONITOR_PORT=${MONITOR_PORT}
  #   ports:
  #     - ${MONITOR_PORT}:${MONITOR_PORT}
  #   volumes:
  #     - ./monitor/data:/app/data
  #   restart: always
  
  # psql_db:
  #   container_name: psql_db
  #   image: postgres:16.4-alpine
  #   volumes:
  #     - ./psql_data:/var/lib/postgresql/data
  #   environment:
  #     - POSTGRES_DB=${POSTGRES_DB}
  #     - POSTGRES_USER=${POSTGRES_USER}
  #     - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
  #   ports:
  #     - ${POSTGRES_PORT}:${POSTGRES_PORT}
  #   expose:
  #     - ${POSTGRES_PORT}
  #   healthcheck:
  #     test:
  #       ['CMD-SHELL', 'pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}']
  #     interval: 10s
  #     timeout: 5s
  #     retries: 5
  #     start_period: 10s
  #   restart: always