version: "3.3"
services:

    #######################################################
    #  Rabbitmq
    #######################################################
  rabbitmq:
    image: rabbitmq:3-management
    container_name: rabbitmq
    restart: unless-stopped
    ports:
      - 5672:5672
      - 15672:15672
    networks:
      - booking


    #######################################################
    #  SqlServer
    #######################################################
  db:
    container_name: sqldb
    image: mcr.microsoft.com/mssql/server:2022-latest
    restart: unless-stopped
    ports:
      - "1433:1433"
    environment:
      SA_PASSWORD: "@Aa123456"
      ACCEPT_EULA: "Y"
    networks:
      - booking


#    #######################################################
#    #  Postgres
#    ######################################################
#  postgres:
#    image: postgres:latest
#    container_name: postgres
#    restart: on-failure
#    ports:
#      - '5432:5432'
#    environment:
#      - POSTGRES_USER=postgres
#      - POSTGRES_PASSWORD=postgres
#    networks:
#      - booking

    #######################################################
    #  Jaeger
    #######################################################
  jaeger:
    image: jaegertracing/all-in-one
    container_name: jaeger
    restart: unless-stopped
    networks:
      - booking
    ports:
      - 5775:5775/udp
      - 5778:5778
      - 6831:6831/udp
      - 6832:6832/udp
      - 9411:9411
      - 14268:14268
      - 16686:16686


    #######################################################
    #  EventStoreDB
    #######################################################
  eventstore.db:
      image: eventstore/eventstore:21.2.0-buster-slim
      restart: on-failure
      environment:
          - EVENTSTORE_CLUSTER_SIZE=1
          - EVENTSTORE_RUN_PROJECTIONS=All
          - EVENTSTORE_START_STANDARD_PROJECTIONS=true
          - EVENTSTORE_EXT_TCP_PORT=1010
          - EVENTSTORE_EXT_HTTP_PORT=2113
          - EVENTSTORE_INSECURE=true
          - EVENTSTORE_ENABLE_EXTERNAL_TCP=true
          - EVENTSTORE_ENABLE_ATOM_PUB_OVER_HTTP=true
      ports:
          - '1010:1113'
          - '2113:2113'
      networks:
          - booking


    #######################################################
    #  Mongo
    #######################################################
  mongo:
    image: mongo:4
    container_name: mongo
    restart: unless-stopped
    # environment:
    #   - MONGO_INITDB_ROOT_USERNAME=root
    #   - MONGO_INITDB_ROOT_PASSWORD=secret
    networks:
      - booking
    ports:
      - 27017:27017
    volumes:
      - mongo:/data/db


    #######################################################
    #  Elastic Search
    #######################################################
  elasticsearch:
   container_name: elasticsearch
   image: docker.elastic.co/elasticsearch/elasticsearch:7.9.2
   restart: unless-stopped
   ports:
    - 9200:9200
   volumes:
    - elasticsearch-data:/usr/share/elasticsearch/data
   environment:
    - xpack.monitoring.enabled=true
    - xpack.watcher.enabled=false
    - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    - discovery.type=single-node
   networks:
    - booking

    #######################################################
    #  Kibana
    #######################################################
  kibana:
   container_name: kibana
   image: docker.elastic.co/kibana/kibana:7.9.2
   restart: unless-stopped
   ports:
    - 5601:5601
   depends_on:
    - elasticsearch
   environment:
    - ELASTICSEARCH_URL=http://localhost:9200
   networks:
    - booking

    #######################################################
    #  Redis
    #######################################################
  redis:
    image: redis
    container_name: redis
    restart: unless-stopped
    networks:
      - booking
    ports:
      - 6379:6379



networks:
  booking:
    name: booking


volumes:
  db-data:
    external: false
  mongo:
    driver: local
  elasticsearch-data:




