version: "3.8"
services:
  zookeeper:
    image: zookeeper:3.4.10

  mesos-master:
    image: mesosphere/mesos-master:1.4.1
    # Uncomment published ports for interactive debugging.
    # ports:
    #   - "5050:5050"
    environment:
      MESOS_HOSTNAME: mesos-master
      MESOS_CLUSTER: local
      MESOS_REGISTRY: in_memory
      MESOS_LOG_DIR: /var/log
      MESOS_WORK_DIR: /var/lib/mesos
      MESOS_ZK: zk://zookeeper:2181/mesos

  mesos-slave:
    image: docker:dind
    privileged: true
    # Uncomment published ports for interactive debugging.
    # ports:
    #   - "5051:5051"
    command:
    - "/bin/sh"
    - "-c"
    - "(/usr/local/bin/dockerd-entrypoint.sh &); sleep 10; set -x; \
    docker -H unix:///var/run/docker.sock run -d --net=host --privileged \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v /cgroup:/cgroup -v /sys:/sys \
    -v /usr/local/bin/docker:/usr/local/bin/docker \
    -e MESOS_HOSTNAME=$$(hostname -i) \
    -e MESOS_CONTAINERIZERS=docker,mesos \
    -e MESOS_ISOLATOR=cgroups/cpu,cgroups/mem \
    -e MESOS_LOG_DIR=/var/log \
    -e MESOS_MASTER=zk://zookeeper:2181/mesos \
    -e MESOS_PORT=5051 \
    -e MESOS_WORK_DIR=/var/lib/mesos \
    -e MESOS_EXECUTOR_REGISTRATION_TIMEOUT=5mins \
    -e MESOS_EXECUTOR_SHUTDOWN_GRACE_PERIOD=90secs \
    -e MESOS_DOCKER_STOP_TIMEOUT=60secs \
    -e MESOS_RESOURCES='cpus:2;mem:2048;disk:20480;ports(*):[12000-12999]' \
    -e MESOS_SYSTEMD_ENABLE_SUPPORT=false \
    mesosphere/mesos-slave:1.4.1; sleep 600"

  marathon:
    image: mesosphere/marathon:v1.5.9
    # Uncomment published ports for interactive debugging.
    # ports:
    #   - "8080:8080"
    environment:
      MARATHON_ZK: zk://zookeeper:2181/marathon
      MARATHON_MASTER: zk://zookeeper:2181/mesos

networks:
  default:
    name: traefik-test-network
    external: true
