version: "3.5" services: hserver: image: hstreamdb/hstream:${HSTREAMDB_TAG} container_name: hstreamdb depends_on: zookeeper: condition: service_started hstore: condition: service_healthy # ports: # - "127.0.0.1:6570:6570" expose: - 6570 networks: - emqx_bridge 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 \ --bind-address 0.0.0.0 --port 6570 \ --internal-port 6571 \ --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-admin-host hstore --store-admin-port 6440 \ --store-log-level warning \ --io-tasks-path /tmp/io/tasks \ --io-tasks-network emqx_bridge hstore: image: hstreamdb/hstream:${HSTREAMDB_TAG} networks: - emqx_bridge 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 --root /data/store \ --use-tcp --tcp-host $$(hostname -I | awk '{print $$1}') \ --user-admin-port 6440 \ --param enable-dscp-reflection=false \ --no-interactive \ > /data/store/hstore.log 2>&1 healthcheck: test: ["CMD", "grep", "LogDevice Cluster running", "/data/store/hstore.log"] interval: 10s timeout: 10s retries: 60 start_period: 60s zookeeper: image: zookeeper:${HSTREAMDB_ZK_TAG} expose: - 2181 networks: - emqx_bridge volumes: - data_zk_data:/data - data_zk_datalog:/datalog ## The three container `hstream-exporter`, `prometheus`, `console` ## is for HStreamDB Web Console ## But HStreamDB Console is not supported in v0.15.0 ## because of HStreamApi proto changed # hstream-exporter: # depends_on: # hserver: # condition: service_completed_successfully # image: hstreamdb/hstream-exporter # networks: # - hstream-quickstart # command: # - bash # - "-c" # - | # set -ex # hstream-exporter --addr hstream://hserver:6570 # prometheus: # image: prom/prometheus # expose: # - 9097 # networks: # - hstream-quickstart # ports: # - "9097:9090" # volumes: # - $PWD/prometheus:/etc/prometheus # console: # image: hstreamdb/hstream-console # depends_on: # - hserver # expose: # - 5177 # networks: # - hstream-quickstart # environment: # - SERVER_PORT=5177 # - PROMETHEUS_URL=http://prometheus:9097 # - HSTREAM_PUBLIC_ADDRESS=hstream.example.com # - HSTREAM_PRIVATE_ADDRESS=hserver:6570 # ports: # - "5177:5177" # networks: # hstream-quickstart: # name: hstream-quickstart volumes: data_store: name: quickstart_data_store data_zk_data: name: quickstart_data_zk_data data_zk_datalog: name: quickstart_data_zk_datalog