services:
  master:
    image: chrislusf/seaweedfs:e2e
    command: "-v=4 master -ip=master -ip.bind=0.0.0.0 -raftBootstrap"
    healthcheck:
      test: ["CMD", "curl", "--fail", "-I", "http://localhost:9333/cluster/healthz"]
      interval: 2s
      timeout: 10s
      retries: 30
      start_period: 10s

  volume:
    image: chrislusf/seaweedfs:e2e
    command: "-v=4 volume -master=master:9333 -ip=volume -ip.bind=0.0.0.0 -preStopSeconds=1"
    healthcheck:
      test: ["CMD", "curl", "--fail", "-I", "http://localhost:8080/healthz"]
      interval: 2s
      timeout: 10s
      retries: 15
      start_period: 5s
    depends_on:
      master:
        condition: service_healthy

  filer:
    image: chrislusf/seaweedfs:e2e
    command: "-v=4 filer -master=master:9333 -ip=filer -ip.bind=0.0.0.0"
    healthcheck:
      test: ["CMD", "curl", "--fail", "-I", "http://localhost:8888/healthz"]
      interval: 2s
      timeout: 10s
      retries: 15
      start_period: 5s
    depends_on:
      volume:
        condition: service_healthy

  mount:
    image: chrislusf/seaweedfs:pjdfstest
    build:
      context: .
    command: "-v=4 mount -filer=filer:8888 -filer.path=/ -dirAutoCreate -dir=/mnt/seaweedfs -allowOthers"
    cap_add:
      - SYS_ADMIN
    devices:
      - /dev/fuse
    security_opt:
      - apparmor:unconfined
    healthcheck:
      test: ["CMD", "mountpoint", "-q", "--", "/mnt/seaweedfs"]
      interval: 2s
      timeout: 10s
      retries: 15
      start_period: 10s
    depends_on:
      filer:
        condition: service_healthy
