Skip to content

Instantly share code, notes, and snippets.

@tuananhlai
Last active July 4, 2021 01:04
Show Gist options
  • Save tuananhlai/976c747a69e8e0ee4cdbfc170796eeb0 to your computer and use it in GitHub Desktop.
Save tuananhlai/976c747a69e8e0ee4cdbfc170796eeb0 to your computer and use it in GitHub Desktop.
A docker-compose file for creating a zookeeper node and 3 kafka brokers, with kafdrop as Web UI
version: "3.9"
services:
zookeeper:
image: confluentinc/cp-zookeeper:latest
network_mode: host
environment:
ZOOKEEPER_SERVER_ID: 1
ZOOKEEPER_SERVERS: localhost:22888:23888
ZOOKEEPER_CLIENT_PORT: 2181
volumes:
- "./docker-volumes/zoo/data:/data"
- "./docker-volumes/zoo/datalog:/datalog"
kafka-broker-1:
image: confluentinc/cp-kafka:latest
network_mode: host
environment:
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: localhost:2181
volumes:
- "./docker-volumes/kafka/data-1:/var/lib/kafka/data"
depends_on:
- zookeeper
kafka-broker-2:
image: confluentinc/cp-kafka:latest
network_mode: host
environment:
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9093
KAFKA_BROKER_ID: 2
KAFKA_ZOOKEEPER_CONNECT: localhost:2181
volumes:
- "./docker-volumes/kafka/data-2:/var/lib/kafka/data"
depends_on:
- zookeeper
kafka-broker-3:
image: confluentinc/cp-kafka:latest
network_mode: host
environment:
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9094
KAFKA_BROKER_ID: 3
KAFKA_ZOOKEEPER_CONNECT: localhost:2181
volumes:
- "./docker-volumes/kafka/data-3:/var/lib/kafka/data"
depends_on:
- zookeeper
kafdrop:
image: obsidiandynamics/kafdrop
network_mode: host
environment:
KAFKA_BROKERCONNECT: "localhost:9092,localhost:9093,localhost:9094"
JVM_OPTS: "-Xms32M -Xmx64M"
SERVER_SERVLET_CONTEXTPATH: "/"
depends_on:
- kafka-broker-1
- kafka-broker-2
- kafka-broker-3
schema-registry:
image: confluentinc/cp-schema-registry
network_mode: host
environment:
SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: localhost:9092,localhost:9093
SCHEMA_REGISTRY_HOST_NAME: localhost
depends_on:
- zookeeper
- kafka-broker-1
- kafka-broker-2
- kafka-broker-3
version: "3.9"
services:
zookeeper:
image: confluentinc/cp-zookeeper:latest
hostname: zoo
environment:
ZOOKEEPER_SERVER_ID: 1
ZOOKEEPER_SERVERS: zoo:22888:23888
ZOOKEEPER_CLIENT_PORT: 2181
ports:
- "2181:2181"
volumes:
- "./docker-volumes/zoo/data:/data"
- "./docker-volumes/zoo/datalog:/datalog"
networks:
- demo-kafka
kafka-broker-1:
image: confluentinc/cp-kafka:latest
hostname: kafka-broker-1
environment:
KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka-broker-1:9192, EXTERNAL://localhost:9092
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zoo:2181
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL
ports:
- "9092:9092"
volumes:
- "./docker-volumes/kafka/data-1:/var/lib/kafka/data"
depends_on:
- zookeeper
networks:
- demo-kafka
kafka-broker-2:
image: confluentinc/cp-kafka:latest
hostname: kafka-broker-2
environment:
KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka-broker-2:9193, EXTERNAL://localhost:9093
KAFKA_BROKER_ID: 2
KAFKA_ZOOKEEPER_CONNECT: zoo:2181
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL
ports:
- "9093:9093"
volumes:
- "./docker-volumes/kafka/data-2:/var/lib/kafka/data"
depends_on:
- zookeeper
networks:
- demo-kafka
kafka-broker-3:
image: confluentinc/cp-kafka:latest
hostname: kafka-broker-3
environment:
KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka-broker-3:9194, EXTERNAL://localhost:9094
KAFKA_BROKER_ID: 3
KAFKA_ZOOKEEPER_CONNECT: zoo:2181
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL
ports:
- "9094:9094"
volumes:
- "./docker-volumes/kafka/data-3:/var/lib/kafka/data"
depends_on:
- zookeeper
networks:
- demo-kafka
kafdrop:
image: obsidiandynamics/kafdrop
ports:
- '9000:9000'
environment:
KAFKA_BROKERCONNECT: "kafka-broker-1:9192,kafka-broker-2:9193,kafka-broker-3:9194"
JVM_OPTS: "-Xms32M -Xmx64M"
SERVER_SERVLET_CONTEXTPATH: "/"
depends_on:
- kafka-broker-1
- kafka-broker-2
- kafka-broker-3
networks:
- demo-kafka
networks:
demo-kafka:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment