docker/docker-compose-multiclusters-cass-mysql-es.yaml (153 lines of code) (raw):

version: '3' services: cassandra: image: cassandra:4.1.1 ports: - "9042:9042" environment: - "MAX_HEAP_SIZE=256M" - "HEAP_NEWSIZE=128M" healthcheck: test: ["CMD", "cqlsh", "-u cassandra", "-p cassandra" ,"-e describe keyspaces"] interval: 15s timeout: 30s retries: 10 mysql: image: mysql:8.0 ports: - "3306:3306" environment: - "MYSQL_ROOT_PASSWORD=root" prometheus: image: prom/prometheus:latest volumes: - ./prometheus_multiclusters:/etc/prometheus command: - '--config.file=/etc/prometheus/prometheus.yml' ports: - '9090:9090' zookeeper: image: wurstmeister/zookeeper:3.4.6 ports: - "2181:2181" kafka: image: wurstmeister/kafka:2.12-2.1.1 depends_on: - zookeeper ports: - "9092:9092" environment: KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092 KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.8.22 ports: - "9200:9200" environment: - discovery.type=single-node cadence: image: ubercadence/server:master-auto-setup ports: - "8000:8000" - "8001:8001" - "8002:8002" - "8003:8003" - "7933:7933" - "7934:7934" - "7935:7935" - "7939:7939" - "7833:7833" environment: - "CASSANDRA_SEEDS=cassandra" - "PROMETHEUS_ENDPOINT_0=0.0.0.0:8000" - "PROMETHEUS_ENDPOINT_1=0.0.0.0:8001" - "PROMETHEUS_ENDPOINT_2=0.0.0.0:8002" - "PROMETHEUS_ENDPOINT_3=0.0.0.0:8003" - "DYNAMIC_CONFIG_FILE_PATH=config/dynamicconfig/development_es.yaml" - "ENABLE_GLOBAL_DOMAIN=true" - "KEYSPACE=cadence_primary" - "VISIBILITY_KEYSPACE=cadence_visibility_primary" - "STATSD_FRONTEND_PREFIX=cadence-frontend-primary" - "STATSD_MATCHING_PREFIX=cadence-matching-primary" - "STATSD_HISTORY_PREFIX=cadence-history-primary" - "STATSD_WORKER_PREFIX=cadence-worker-primary" - "CLUSTER_REDIRECT_POLICY=selected-apis-forwarding" - "ENABLE_ES=true" - "ES_SEEDS=elasticsearch" - "KAFKA_SEEDS=kafka" - "VISIBILITY_NAME=cadence-visibility-primary" - "FRONTEND_SERVICE=cadence" depends_on: cassandra: condition: service_healthy prometheus: condition: service_started kafka: condition: service_started elasticsearch: condition: service_started cadence-secondary: image: ubercadence/server:master-auto-setup ports: - "9001:9001" - "9002:9002" - "9003:9003" - "9004:9004" - "7943:7933" - "7944:7934" - "7945:7935" - "7949:7939" - "7843:7833" environment: - "DB=mysql" - "MYSQL_USER=root" - "MYSQL_PWD=root" - "MYSQL_SEEDS=mysql" - "PROMETHEUS_ENDPOINT_0=0.0.0.0:9001" - "PROMETHEUS_ENDPOINT_1=0.0.0.0:9002" - "PROMETHEUS_ENDPOINT_2=0.0.0.0:9003" - "PROMETHEUS_ENDPOINT_3=0.0.0.0:9004" - "DYNAMIC_CONFIG_FILE_PATH=config/dynamicconfig/development_es.yaml" - "IS_NOT_PRIMARY=true" - "ENABLE_GLOBAL_DOMAIN=true" - "STATSD_FRONTEND_PREFIX=cadence-frontend-secondary" - "STATSD_MATCHING_PREFIX=cadence-matching-secondary" - "STATSD_HISTORY_PREFIX=cadence-history-secondary" - "STATSD_WORKER_PREFIX=cadence-worker-secondary" - "CLUSTER_REDIRECT_POLICY=selected-apis-forwarding" - "ENABLE_ES=true" - "ES_SEEDS=elasticsearch" - "KAFKA_SEEDS=kafka" - "VISIBILITY_NAME=cadence-visibility-secondary" - "FRONTEND_SERVICE=cadence-secondary" depends_on: - mysql - prometheus - kafka - elasticsearch cadence-web: image: ubercadence/web:latest environment: - "CADENCE_TCHANNEL_PEERS=cadence:7933" ports: - "8088:8088" depends_on: - cadence cadence-web-secondary: image: ubercadence/web:latest environment: - "CADENCE_TCHANNEL_PEERS=cadence-secondary:7933" ports: - "8089:8088" depends_on: - cadence-secondary grafana: image: grafana/grafana volumes: - ./grafana:/etc/grafana user: "1000" depends_on: - prometheus ports: - '3000:3000'