Skip to content

Instantly share code, notes, and snippets.

@don-rumata
Last active May 14, 2025 08:14
Show Gist options
  • Save don-rumata/2f0b0d6ba2e680134bd2141c9a6b15e5 to your computer and use it in GitHub Desktop.
Save don-rumata/2f0b0d6ba2e680134bd2141c9a6b15e5 to your computer and use it in GitHub Desktop.
docker-compose.yml with zookeeper v3.9, kafka v4.0.0, kafka-ui v0.7.2
---
services:
zookeeper111:
image: ${ZOOKEEPER_IMAGE:-zookeeper}:${ZOOKEEPER_IMAGE_VERSION:-3.9}
container_name: ${ZOOKEEPER_CONTAINERNAME:-zookeeper}
env_file: .env
ports:
- "${ZOOKEEPER_PORT:-2181}:2181"
networks:
# - ${KAFKA_NETWORK:-kafka-net}
- kafka-111
kafka111:
image: ${KAFKA_IMAGE:-apache/kafka}:${KAFKA_IMAGE_VERSION:-4.0.0}
container_name: ${KAFKA_CONTAINERNAME:-kafka}
env_file: .env
ports:
- "${KAFKA_PORT1:-9092}:9092"
- "${KAFKA_PORT2:-9093}:9093"
environment:
KAFKA_ZOOKEEPER_CONNECT: ${ZOOKEEPER_CONTAINERNAME:-zookeeper}:2181
KAFKA_NODE_ID: 1
KAFKA_PROCESS_ROLES: broker,controller
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://${KAFKA_CONTAINERNAME:-kafka}:9092,CONTROLLER://${KAFKA_CONTAINERNAME:-kafka}:9093
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
KAFKA_CONTROLLER_QUORUM_VOTERS: 1@localhost:9093
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
KAFKA_NUM_PARTITIONS: 3
# Превращается в "delete.topic.enable=false" в config/server.properties.
KAFKA_DELETE_TOPIC_ENABLE: false
volumes:
- ./secrets:/etc/kafka/secrets:ro
# - ./configs:/mnt/shared/config:ro
# Иначе "/opt/kafka/config/ file not writable".
- ./config:/opt/kafka/config:rw
- ./data:/var/lib/kafka/data:rw
networks:
# - ${KAFKA_NETWORK:-kafka-net}
- kafka-111
depends_on:
- zookeeper111
kafka-ui111:
image: ${KAFKAUI_IMAGE:-provectuslabs/kafka-ui}:${KAFKAUI_IMAGE_VERSION:-v0.7.2}
container_name: ${KAFKAUI_CONTAINERNAME:-kafka-ui}
env_file: .env
ports:
- "${KAFKAUI_PORT:-9001}:8080"
environment:
KAFKA_CLUSTERS_0_NAME : "local"
KAFKA_CLUSTERS_0_BOOTSTRAP_SERVERS : "${KAFKA_CONTAINERNAME:-kafka}:9092"
networks:
# - ${KAFKA_NETWORK:-kafka-net}
- kafka-111
depends_on:
- kafka111
networks:
kafka-111:
# name: ${KAFKA_NETWORK:-kafka-net}
name: kafka-net
driver: bridge
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment