version: '3.7'
services:

  kafka:
    image: bitnami/kafka:3.5.1
    environment:
      - KAFKA_CFG_PROCESS_ROLES=broker,controller
      - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://:9094
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,EXTERNAL:PLAINTEXT
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092,EXTERNAL://host.docker.internal:9094
      - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093
      - ALLOW_PLAINTEXT_LISTENER=yes
      - KAFKA_CFG_NODE_ID=0
      - KAFKA_KRAFT_CLUSTER_ID=abcdefghijklmnopqrstuv
      - BITNAMI_DEBUG=yes
    ports:
      - "9094:9094"
    restart: unless-stopped
    volumes:
      - kafka_data:/bitnami/kafka
  kafka-ui:
    image: provectuslabs/kafka-ui:latest
#    ports:
#      - 8082:8080
    environment:
      KAFKA_CLUSTERS_0_NAME: local
      KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka:9092
      SERVER_SERVLET_CONTEXT_PATH: /kafka-ui
    restart: unless-stopped

volumes:
  kafka_data: