blob: b850932108edd6783f9eb279b8699acc85df0514 [file] [log] [blame]
###########################################################################################
#
# Deploy a Zookeeper/Kafka messaging cluster
#
# It is meant to be deployed within a swarm cluster using the docker stack functionality.
# This file will deploy 3 zookeeper containers and 1 kafka container per swarm node.
#
# This file will also create an overlay network which can be referred by other services.
#
# Example:
#
# docker stack deploy -c docker-compose-kafka-ha-cluster.yml kafka
#
###########################################################################################
version: '3'
services:
zk1:
image: zookeeper
networks:
- net
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=0.0.0.0:2888:3888 server.2=zk2:2888:3888 server.3=zk3:2888:3888
zk2:
image: zookeeper
networks:
- net
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zk1:2888:3888 server.2=0.0.0.0:2888:3888 server.3=zk3:2888:3888
zk3:
image: zookeeper
networks:
- net
environment:
ZOO_MY_ID: 3
ZOO_SERVERS: server.1=zk1:2888:3888 server.2=zk2:2888:3888 server.3=0.0.0.0:2888:3888
kafka:
deploy:
mode: global
image: wurstmeister/kafka
environment:
KAFKA_ADVERTISED_PORT: 9092
KAFKA_ZOOKEEPER_CONNECT: zk1:2181,zk2:2181,zk3:2181
KAFKA_HEAP_OPTS: -Xmx256M -Xms128M
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks:
- net
- voltha-net
ports:
- 9092:9092
networks:
net:
driver: overlay
driver_opts:
encrypted: "true"
voltha-net:
external:
name: voltha_net