version: "2"

services:
  zk:
    image: rdelvalle/zookeeper
    restart: on-failure
    ports:
    - "2181:2181"
    environment:
      ZK_CONFIG: tickTime=2000,initLimit=10,syncLimit=5,maxClientCnxns=128,forceSync=no,clientPort=2181
      ZK_ID: 1
    networks:
      aurora_cluster:
        ipv4_address: 192.168.33.2

  master:
    image: aurorascheduler/mesos-master:1.7.2
    restart: on-failure
    ports:
    - "5050:5050"
    environment:
      MESOS_ZK: zk://192.168.33.2:2181/mesos
      MESOS_QUORUM: 1
      MESOS_HOSTNAME: localhost
      MESOS_CLUSTER: test-cluster
      MESOS_REGISTRY: replicated_log
      MESOS_WORK_DIR: /tmp/mesos
    networks:
      aurora_cluster:
        ipv4_address: 192.168.33.3
    depends_on:
    - zk

  agent-one:
    image: aurorascheduler/mesos-agent:1.7.2
    pid: host
    restart: on-failure
    ports:
    - "5051:5051"
    environment:
      MESOS_ATTRIBUTES: 'zone:west'
      MESOS_MASTER: zk://192.168.33.2:2181/mesos
      MESOS_CONTAINERIZERS: docker,mesos
      MESOS_PORT: 5051
      MESOS_HOSTNAME: localhost
      MESOS_RESOURCES: ports(*):[11000-11999]
      MESOS_SYSTEMD_ENABLE_SUPPORT: 'false'
      MESOS_WORK_DIR: /tmp/mesos
    networks:
      aurora_cluster:
        ipv4_address: 192.168.33.4

    volumes:
    - /sys/fs/cgroup:/sys/fs/cgroup
    - /var/run/docker.sock:/var/run/docker.sock
    depends_on:
    - zk

  agent-two:
    image: aurorascheduler/mesos-agent:1.7.2
    pid: host
    restart: on-failure
    ports:
      - "5061:5061"
    environment:
      MESOS_ATTRIBUTES: 'zone:east'
      MESOS_MASTER: zk://192.168.33.2:2181/mesos
      MESOS_CONTAINERIZERS: docker,mesos
      MESOS_HOSTNAME: localhost
      MESOS_PORT: 5061
      MESOS_RESOURCES: ports(*):[11000-11999]
      MESOS_SYSTEMD_ENABLE_SUPPORT: 'false'
      MESOS_WORK_DIR: /tmp/mesos
    networks:
      aurora_cluster:
        ipv4_address: 192.168.33.5

    volumes:
      - /sys/fs/cgroup:/sys/fs/cgroup
      - /var/run/docker.sock:/var/run/docker.sock
    depends_on:
      - zk

  aurora-one:
    image: aurorascheduler/scheduler:0.23.0
    pid: host
    ports:
    - "8081:8081"
    restart: on-failure
    environment:
      CLUSTER_NAME: test-cluster
      ZK_ENDPOINTS: "192.168.33.2:2181"
      MESOS_MASTER: "zk://192.168.33.2:2181/mesos"
      EXTRA_SCHEDULER_ARGS: "-min_required_instances_for_sla_check=1"
    networks:
      aurora_cluster:
        ipv4_address: 192.168.33.7
    depends_on:
    - zk
    - master
    - agent-one

networks:
  aurora_cluster:
    driver: bridge
    ipam:
      config:
      - subnet: 192.168.33.0/16
        gateway: 192.168.33.1