kafka-with-zookeeper.yaml 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. ---
  2. version: '2'
  3. services:
  4. zookeeper:
  5. image: confluentinc/cp-zookeeper:7.2.1
  6. hostname: zookeeper
  7. container_name: zookeeper
  8. ports:
  9. - "2181:2181"
  10. environment:
  11. ZOOKEEPER_CLIENT_PORT: 2181
  12. ZOOKEEPER_TICK_TIME: 2000
  13. kafka:
  14. image: confluentinc/cp-server:7.2.1
  15. hostname: kafka
  16. container_name: kafka
  17. depends_on:
  18. - zookeeper
  19. ports:
  20. - "9092:9092"
  21. - "9997:9997"
  22. environment:
  23. KAFKA_BROKER_ID: 1
  24. KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
  25. KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
  26. KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092
  27. KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
  28. KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
  29. KAFKA_CONFLUENT_LICENSE_TOPIC_REPLICATION_FACTOR: 1
  30. KAFKA_CONFLUENT_BALANCER_TOPIC_REPLICATION_FACTOR: 1
  31. KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
  32. KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
  33. KAFKA_JMX_PORT: 9997
  34. KAFKA_JMX_HOSTNAME: kafka
  35. kafka-init-topics:
  36. image: confluentinc/cp-kafka:7.2.1
  37. volumes:
  38. - ./data/message.json:/data/message.json
  39. depends_on:
  40. - kafka
  41. command: "bash -c 'echo Waiting for Kafka to be ready... && \
  42. cub kafka-ready -b kafka:29092 1 30 && \
  43. kafka-topics --create --topic users --partitions 3 --replication-factor 1 --if-not-exists --bootstrap-server kafka:29092 && \
  44. kafka-topics --create --topic messages --partitions 2 --replication-factor 1 --if-not-exists --bootstrap-server kafka:29092 && \
  45. kafka-console-producer --bootstrap-server kafka:29092 --topic users < /data/message.json'"