version: "2" services: kafdrop: image: obsidiandynamics/kafdrop restart: "no" ports: - "127.0.0.1:9000:9000" environment: KAFKA_BROKERCONNECT: "kafka:29092" depends_on: - "kafka" kafka: image: apache/kafka:3.9.0 restart: "no" ports: # - "127.0.0.1:2181:2181" - "127.0.0.1:9092:9092" - "127.0.0.1:9093:9093" healthcheck: # <-- ADD THIS BLOCK test: ["CMD-SHELL", "/opt/kafka/bin/kafka-topics.sh --bootstrap-server 127.0.0.1:9092 --list"] interval: 10s timeout: 5s retries: 10 start_period: 20s environment: KAFKA_NODE_ID: 1 KAFKA_PROCESS_ROLES: broker,controller KAFKA_LISTENERS: INTERNAL://:29092,EXTERNAL://:9092,CONTROLLER://127.0.0.1:9093 KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka:29092,EXTERNAL://localhost:9092 KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT KAFKA_CONTROLLER_QUORUM_VOTERS: 1@127.0.0.1:9093 KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL 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 kafka-init: image: apache/kafka:3.9.0 command: [ "/bin/bash", "-c", "chmod +x /tmp/create_topic.sh && /tmp/create_topic.sh"] depends_on: kafka: condition: service_healthy volumes: - ./init-scripts/create_topic.sh:/tmp/create_topic.sh environment: - TOPIC_NAMES=topic1,topic2,topic3 valkey: image: valkey/valkey:9.0.0 container_name: valkey ports: - "127.0.0.1:6379:6379"