version: "3.5" services: hserver: image: hstreamdb/hstream:latest depends_on: - zookeeper - hstore ports: - "127.0.0.1:9092:9092" expose: - 9092 networks: - hstream-kafka-quickstart volumes: - /var/run/docker.sock:/var/run/docker.sock - /tmp:/tmp - data_store:/data/store command: - bash - "-c" - | set -e /usr/local/script/wait-for-storage.sh hstore 6440 zookeeper 2181 600 \ /usr/local/bin/hstream-server kafka \ --bind-address 0.0.0.0 --port 9092 \ --server-id 100 \ --seed-nodes "$$(hostname -I | awk '{print $$1}'):6571" \ --advertised-address $$(hostname -I | awk '{print $$1}') \ --metastore-uri zk://zookeeper:2181 \ --store-config /data/store/logdevice.conf \ --store-log-level warning \ --log-with-color hstore: image: hstreamdb/hstream:latest networks: - hstream-kafka-quickstart volumes: - data_store:/data/store command: - bash - "-c" - | set -ex # N.B. "enable-dscp-reflection=false" is required for linux kernel which # doesn't support dscp reflection, e.g. centos7. /usr/local/bin/ld-dev-cluster -n 3 --root /data/store \ --use-tcp --tcp-host $$(hostname -I | awk '{print $$1}') \ --user-admin-port 6440 \ --param enable-dscp-reflection=false \ --no-interactive zookeeper: image: zookeeper:3.8 expose: - 2181 networks: - hstream-kafka-quickstart volumes: - data_zk_data:/data - data_zk_datalog:/datalog hserver-init: image: hstreamdb/hstream:latest depends_on: - hserver networks: - hstream-kafka-quickstart command: - bash - "-c" - | timeout=60 until ( \ /usr/local/bin/hstream-kafka --host hserver --port 9092 node status \ ) >/dev/null 2>&1; do >&2 echo 'Waiting for servers ...' sleep 1 timeout=$$((timeout - 1)) [ $$timeout -le 0 ] && echo 'Timeout!' && exit 1; done; \ /usr/local/bin/hstream-kafka --host hserver --port 9092 node init networks: hstream-kafka-quickstart: name: hstream-kafka-quickstart volumes: data_store: name: kafka_quickstart_data_store data_zk_data: name: kafka_quickstart_data_zk_data data_zk_datalog: name: kafka_quickstart_data_zk_datalog data_prom_config: name: kafka_quickstart_data_prom_config