services:
  rabbitmq:
    image: rabbitmq:management
    container_name: rabbitmq
    restart: always
    ports:
      - "5672:5672"
      - "15672:15672"
    environment:
      RABBITMQ_DEFAULT_USER: admin
      RABBITMQ_DEFAULT_PASS: admin
    networks:
      - my_network

  publisher:
    build:
      context: ./Publisher
    restart: always
    depends_on:
      - rabbitmq
    environment:
      RABBITMQ_HOST: rabbitmq
      RABBIT_USERNAME: admin
      RABBIT_PASSWORD: admin
      RABBIT_EXCHANGE: 'logs_exchange'
    networks:
      - my_network

  consumer1:
    build:
      context: ./Consumer1
    restart: always
    depends_on:
      - rabbitmq
    environment:
      RABBITMQ_HOST: rabbitmq
      RABBIT_USERNAME: admin
      RABBIT_PASSWORD: admin
      RABBIT_EXCHANGE: 'logs_exchange'
      RABBIT_QUEUE: 'slow_queue'
    networks:
      - my_network

  consumer2:
    build:
      context: ./Consumer2
    restart: always
    depends_on:
      - rabbitmq
    environment:
      RABBITMQ_HOST: rabbitmq
      RABBIT_USERNAME: admin
      RABBIT_PASSWORD: admin
      RABBIT_EXCHANGE: 'logs_exchange'
      RABBIT_QUEUE: 'fast_queue'
    networks:
      - my_network

networks:
  my_network:
    driver: bridge