133 lines
3.4 KiB
YAML
133 lines
3.4 KiB
YAML
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
|