You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

51 lines
1.6 KiB

  1. version: "2"
  2. services:
  3. kafdrop:
  4. image: obsidiandynamics/kafdrop
  5. restart: "no"
  6. ports:
  7. - "127.0.0.1:9000:9000"
  8. environment:
  9. KAFKA_BROKERCONNECT: "kafka:29092"
  10. depends_on:
  11. - "kafka"
  12. kafka:
  13. image: apache/kafka:3.9.0
  14. restart: "no"
  15. ports:
  16. # - "127.0.0.1:2181:2181"
  17. - "127.0.0.1:9092:9092"
  18. - "127.0.0.1:9093:9093"
  19. healthcheck: # <-- ADD THIS BLOCK
  20. test: ["CMD-SHELL", "/opt/kafka/bin/kafka-topics.sh --bootstrap-server 127.0.0.1:9092 --list"]
  21. interval: 10s
  22. timeout: 5s
  23. retries: 10
  24. start_period: 20s
  25. environment:
  26. KAFKA_NODE_ID: 1
  27. KAFKA_PROCESS_ROLES: broker,controller
  28. KAFKA_LISTENERS: INTERNAL://:29092,EXTERNAL://:9092,CONTROLLER://127.0.0.1:9093
  29. KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka:29092,EXTERNAL://localhost:9092
  30. KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
  31. KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
  32. KAFKA_CONTROLLER_QUORUM_VOTERS: 1@127.0.0.1:9093
  33. KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL
  34. KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
  35. KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
  36. KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
  37. KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
  38. KAFKA_NUM_PARTITIONS: 3
  39. kafka-init:
  40. image: apache/kafka:3.9.0
  41. command: [ "/bin/bash", "-c", "chmod +x /tmp/create_topic.sh && /tmp/create_topic.sh"]
  42. depends_on:
  43. kafka:
  44. condition: service_healthy
  45. volumes:
  46. - ./init-scripts/create_topic.sh:/tmp/create_topic.sh
  47. environment:
  48. - TOPIC_NAMES=topic1,topic2,topic3