#
# Copyright (C) 2015-2019 Uber Technologies, Inc. (streaming-data@uber.com)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

version: '3'
#
# Copyright (C) 2015-2017 Uber Technologies, Inc. (streaming-data@uber.com)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

services:
  devenv:
    build: devenv/.
    ports:
    - "2181:2181"
    - "9093:9093"
    - "9094:9094"
    healthcheck:
      test: ["CMD", "./prepare-devenv.sh", "devenv", "5"]
      interval: 5s
      timeout: 10s
      retries: 10
  controller:
    image: ureplicator
    build: .
    ports:
    - "9000:9000"
    command: "controller \
      -enableFederated false \
      -mode auto \
      backUpToGit false \
      -enableAutoTopicExpansion true \
      -port 9000 \
      -refreshTimeInSeconds 10 \
      -srcKafkaZkPath devenv:2181/cluster1 \
      -zookeeper devenv:2181 \
      -destKafkaZkPath devenv:2181/cluster1 \
      -helixClusterName testMirrorMaker"
    links:
    - devenv
    environment:
    - WAIT_FOR_HOST=devenv:2181
    restart: always
    healthcheck:
      test: ["CMD", "./wait-for-it.sh", "controller:9000", "60"]
      interval: 30s
      timeout: 10s
      retries: 5
  worker_1:
    image: ureplicator
    command:  "worker \
        -consumer_config example/example-consumer.properties \
        -producer_config example/example-producer.properties \
        -federated_enabled false \
        -helix_config example/example-helix.properties \
        -topic_partition_count_observer true \
        -topic_mappings example/example-topicmapping.properties \
        -cluster_config example/example-cluster.properties"
    environment:
    - WAIT_FOR_HOST=controller:9000
    restart: always
    links:
    - devenv
    - controller
  worker_2:
    image: ureplicator
    command: "worker \
        -consumer_config example/example-consumer.properties \
        -producer_config example/example-producer.properties \
        -federated_enabled false \
        -helix_config example/example-helix-2.properties \
        -topic_partition_count_observer true \
        -topic_mappings example/example-topicmapping.properties \
        -cluster_config example/example-cluster.properties"
    environment:
    - WAIT_FOR_HOST=controller:9000
    restart: always
    links:
    - devenv
    - controller

