Skip to content

Instantly share code, notes, and snippets.

@Vienchau
Last active November 23, 2023 05:24
Show Gist options
  • Save Vienchau/386a16cfb6631f63751b8c25c4948802 to your computer and use it in GitHub Desktop.
Save Vienchau/386a16cfb6631f63751b8c25c4948802 to your computer and use it in GitHub Desktop.
Simple docker-compose file to create kafka - zookeeper - kowl container for testing in local.
version: "2.1"
services:
zookeeper:
image: docker.io/bitnami/zookeeper:3.8
hostname: zookeeper
container_name: zookeeper
ports:
- "2181:2181"
volumes:
- "zookeeper_data:/bitnami"
environment:
ALLOW_ANONYMOUS_LOGIN: "yes"
ZOOKEEPER_TICK_TIME: 2000
ZOOKEEPER_SYNC_LIMIT: 2
restart: always
kafka_01:
image: docker.io/bitnami/kafka:3.4
hostname: kafka_01
container_name: kafka_01
ports:
- "8097:8097"
volumes:
- "kafka_data_1:/bitnami"
environment:
KAFKA_ENABLE_KRAFT: "no"
KAFKA_BROKER_ID: 1
ALLOW_PLAINTEXT_LISTENER: "yes"
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CLIENT:PLAINTEXT,EXTERNAL:PLAINTEXT
KAFKA_LISTENERS: CLIENT://kafka_01:9092,EXTERNAL://:8097
KAFKA_ADVERTISED_LISTENERS: CLIENT://kafka_01:9092,EXTERNAL://localhost:8097
KAFKA_LOG4J_LOGGERS: "kafka.controller: INFO,kafka.producer.async.DefaultEventHandler=INFO,state.change.logger=INFO"
KAFKA_INTER_BROKER_LISTENER_NAME: CLIENT
BOOTSTRAP_SERVERS: kafka_01:9092,kafka_02:9092,kafka_03:9092
depends_on:
- zookeeper
restart: always
kafka_02:
image: docker.io/bitnami/kafka:3.4
hostname: kafka_02
container_name: kafka_02
ports:
- "8098:8098"
volumes:
- "kafka_data_2:/bitnami"
environment:
KAFKA_BROKER_ID: 2
KAFKA_ENABLE_KRAFT: "no"
ALLOW_PLAINTEXT_LISTENER: "yes"
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CLIENT:PLAINTEXT,EXTERNAL:PLAINTEXT
KAFKA_LISTENERS: CLIENT://kafka_02:9092,EXTERNAL://:8098
KAFKA_ADVERTISED_LISTENERS: CLIENT://kafka_02:9092,EXTERNAL://localhost:8098
KAFKA_LOG4J_LOGGERS: "kafka.controller: INFO,kafka.producer.async.DefaultEventHandler=INFO,state.change.logger=INFO"
KAFKA_INTER_BROKER_LISTENER_NAME: CLIENT
BOOTSTRAP_SERVERS: kafka_01:9092,kafka_02:9092,kafka_03:9092
depends_on:
- zookeeper
restart: always
kafka_03:
image: docker.io/bitnami/kafka:3.4
hostname: kafka_03
container_name: kafka_03
ports:
- "8099:8099"
volumes:
- "kafka_data_3:/bitnami"
environment:
KAFKA_BROKER_ID: 3
KAFKA_ENABLE_KRAFT: "no"
ALLOW_PLAINTEXT_LISTENER: "yes"
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CLIENT:PLAINTEXT,EXTERNAL:PLAINTEXT
KAFKA_LISTENERS: CLIENT://kafka_03:9092,EXTERNAL://:8099
KAFKA_ADVERTISED_LISTENERS: CLIENT://kafka_03:9092,EXTERNAL://localhost:8099
KAFKA_LOG4J_LOGGERS: "kafka.controller: INFO,kafka.producer.async.DefaultEventHandler=INFO,state.change.logger=INFO"
KAFKA_INTER_BROKER_LISTENER_NAME: CLIENT
BOOTSTRAP_SERVERS: kafka_01:9092,kafka_02:9092,kafka_03:9092
depends_on:
- zookeeper
restart: always
kowl:
image: quay.io/cloudhut/kowl
restart: on-failure
hostname: kowl
container_name: kowl
volumes:
- ./config.yaml:/etc/kowl/config.yaml
ports:
- "8081:8080"
entrypoint: ./kowl --config.filepath=/etc/kowl/config.yaml
depends_on:
- kafka_01
- kafka_02
- kafka_03
redis:
image: docker.io/redislabs/rejson:latest
container_name: redis
ports:
- "6379:6379"
volumes:
- "redis_data:/data"
restart: always
# producer_speedtest:
# image: ./path/folder
volumes:
zookeeper_data:
driver: local
kafka_data_1:
driver: local
kafka_data_2:
driver: local
kafka_data_3:
driver: local
redis_data:
driver: local
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment