└── docker-compose.yml /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | zookeeper: 5 | image: confluentinc/cp-zookeeper:latest 6 | networks: 7 | - broker-kafka 8 | environment: 9 | ZOOKEEPER_CLIENT_PORT: 2181 10 | ZOOKEEPER_TICK_TIME: 2000 11 | 12 | kafka: 13 | image: confluentinc/cp-kafka:latest 14 | networks: 15 | - broker-kafka 16 | depends_on: 17 | - zookeeper 18 | ports: 19 | - "9092:9092" 20 | environment: 21 | KAFKA_BROKER_ID: 1 22 | KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 23 | KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092 24 | KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT 25 | KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT 26 | KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 27 | 28 | kafdrop: 29 | image: obsidiandynamics/kafdrop:latest 30 | networks: 31 | - broker-kafka 32 | depends_on: 33 | - kafka 34 | ports: 35 | - "19000:9000" 36 | environment: 37 | KAFKA_BROKERCONNECT: kafka:29092 38 | 39 | networks: 40 | broker-kafka: 41 | driver: bridge 42 | --------------------------------------------------------------------------------