---
services:
  memgraph:
    image: "memgraph/memgraph-mage:latest"
    container_name: memgraph
    volumes:
      - mg_lib:/var/lib
      - mg_log:/var/log
      - mg_etc:/etc/memgraph
    ports:
      - "7687:7687"
      - "7444:7444"
    command: 
      - "--log-level=TRACE"
      - "--storage-mode=ON_DISK_TRANSACTIONAL"
      - "--storage-snapshot-interval-sec=86400"
      - "--storage-snapshot-retention-count=60"
      - "--storage-property-store-compression-enabled=true"
      - "--storage-property-store-compression-level=mid"
      - "--storage-snapshot-on-exit=true"
    environment:
      - MEMGRAPH_USER=<USERNAME>
      - MEMGRAPH_PASSWORD=<PASSWORD>
    healthcheck:
      test: ["CMD-SHELL", "echo 'RETURN 0;' | mgconsole || exit 1"]
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 0s
  lab:
    image: memgraph/lab:latest
    container_name: memgraph-lab
    ports:
      - "3036:3000"
    depends_on:
      - memgraph
    environment:
      - QUICK_CONNECT_MG_HOST=memgraph
      - QUICK_CONNECT_MG_PORT=7687
  db-adapter:
    image: vcscsvcscs/gheritage-db-adapter:latest
    container_name: db-adapter
    ports:
      - "8080:8080"
    depends_on:
      - memgraph
    environment:
      - MEMGRAPH_HOST=memgraph
      - MEMGRAPH_PORT=7687
      - MEMGRAPH_USER=<USERNAME>
      - MEMGRAPH_PASSWORD=<PASSWORD>
    healthcheck:
      test: ["CMD-SHELL", "curl --fail http://localhost:8080/health || exit 1"]
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 0s
volumes:
  mg_lib:
    driver: local
    driver_opts:
      type: 'none'
      o: 'bind'
      device: '/data/memgraph/lib'
  mg_log:
    driver: local
    driver_opts:
      type: 'none'
      o: 'bind'
      device: '/data/memgraph/log'
  mg_etc:
    driver: local
    driver_opts:
      type: 'none'
      o: 'bind'
      device: '/data/memgraph/etc'
