version: '3'

services:
  vector:
    image: docker.io/timberio/vector:0.30.0-distroless-static
    restart: on-failure
    volumes:
      - type: bind
        source: /var/run/docker.sock
        target: /var/run/docker.sock
      - type: bind
        source: /var/lib/docker
        target: /var/lib/docker
      - ./vector.toml:/etc/vector/vector.toml:ro
    user: root
    ports:
      - '8686:8686'
    depends_on:
      victorialogs:
        condition: service_healthy
      victoriametrics:
        condition: service_healthy

  victorialogs:
    image: docker.io/victoriametrics/victoria-logs:v0.28.0-victorialogs
    volumes:
      - victorialogs-vector-docker-vl:/vlogs
    ports:
      - '9428:9428'
    command:
      - -storageDataPath=/vlogs
      - -loggerFormat=json
    healthcheck:
      test: ["CMD", "wget", "-qO-", "http://localhost:9428/health"]
      interval: 1s
      timeout: 1s
      retries: 10

  victoriametrics:
    image: victoriametrics/victoria-metrics:latest
    ports:
      - '8428:8428'
    command:
      - -storageDataPath=/vmsingle
      - -promscrape.config=/promscrape.yml
      - -loggerFormat=json
    volumes:
      - victorialogs-vector-docker-vm:/vmsingle
      - ./scrape.yml:/promscrape.yml
    healthcheck:
      test: ["CMD", "wget", "-qO-", "http://localhost:8428/health"]
      interval: 1s
      timeout: 1s
      retries: 10

volumes:
  victorialogs-vector-docker-vl:
  victorialogs-vector-docker-vm: