Daftar Isi:

version: '3'
services:
  app:
    build: .
    image: warehouse-report-service
    container_name: warehouse-report-service
    restart: unless-stopped
    ports:
      - '7500'
    volumes:
      # - .:/app
      - .env:/app/.env
    networks:
      - epuscore-network
    environment:
      - AMQP_URL=amqp://epuscore:epuscore@warehouse_rabbitmq:5672
      - CLICKHOUSE_URL=http://epuscore:epuscore@warehouse_ch_server:8123/report_service
      - VALKEY_HOST=warehouse-valkey
      - VALKEY_PORT=6379

  webserver:
    image: nginx:alpine
    container_name: report-service-webserver
    restart: unless-stopped
    tty: true
    ports:
      - '7500:7500'
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
    networks:
      - epuscore-network
    depends_on:
      - app
  ch_server:
    image: yandex/clickhouse-server
    container_name: warehouse_ch_server
    restart: unless-stopped
    environment:
      - CLICKHOUSE_USER=epuscore
      - CLICKHOUSE_PASSWORD=epuscore
      - CLICKHOUSE_DB=report_service
    volumes:
      - ./clickhouse:/var/lib/clickhouse
    ports:
      - '8123:8123'
    networks:
      - epuscore-network
  ch_client:
    image: yandex/clickhouse-client
    container_name: warehouse_ch_client
    restart: unless-stopped
    entrypoint:
      - /bin/sleep
    command:
      - infinity
    networks:
      - epuscore-network
    depends_on:
      - ch_server
  rabbitmq:
    image: rabbitmq:4.0-management
    container_name: warehouse_rabbitmq
    environment:
      RABBITMQ_DEFAULT_USER: epuscore
      RABBITMQ_DEFAULT_PASS: epuscore
    restart: unless-stopped
    ports:
      - '5672:5672'
      - '15672:15672'
    networks:
      - epuscore-network
  valkey:
    image: valkey/valkey:latest
    container_name: warehouse-valkey
    restart: unless-stopped
    ports:
      - '6379:6379'
    networks:
      - epuscore-network
networks:
  epuscore-network:
    driver: bridge
    name: epuscore-network