version: "3.9"
services:
  pareto-anywhere:
    build:
      context: .
      dockerfile: Dockerfile
    image: reelyactive/pareto-anywhere:latest
    container_name: pareto-anywhere
    restart: unless-stopped
    ports:
      - "3001:3001/tcp"
      - "50000:50000/udp"
      - "50001:50001/udp"
    networks:
      - pareto-anywhere-elastic

  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.13.4
    container_name: elasticsearch
    restart: unless-stopped
    environment:
      - node.name=es01
      - xpack.security.enabled=false
      - discovery.type=single-node
    cap_add:
      - IPC_LOCK
    ports:
      - "9200:9200"
    volumes:
      - type: volume
        source: elasticsearch-data
        target: /usr/share/elasticsearch/data
    networks:
      - pareto-anywhere-elastic

  kibana:
    image: docker.elastic.co/kibana/kibana:7.13.4
    container_name: kibana
    restart: unless-stopped
    environment:
      - ELASTICSEARCH_HOSTS="http://elasticsearch:9200"
    ports:
      - "5601:5601"
    depends_on:
      - elasticsearch
    volumes:
      - type: volume
        source: kibana-data
        target: /usr/share/kibana/config
    networks:
      - pareto-anywhere-elastic

volumes:
  elasticsearch-data:
  kibana-data:

networks:
  pareto-anywhere-elastic:
    driver: bridge
