version: '3.8' services: zookeeper: image: confluentinc/cp-zookeeper:latest container_name: zookeeper restart: unless-stopped environment: ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_TICK_TIME: 2000 networks: - kafka_network kafka: image: confluentinc/cp-kafka:latest container_name: kafka restart: unless-stopped depends_on: - zookeeper networks: - kafka_network - proxy environment: KAFKA_BROKER_ID: 1 KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181" KAFKA_HOSTNAME: "kafka.luke-else.co.uk" KAFKA_LISTENERS: "INTERNAL://kafka:9092,EXTERNAL://0.0.0.0:9093" KAFKA_ADVERTISED_LISTENERS: "INTERNAL://kafka:9092,EXTERNAL://kafka.luke-else.co.uk:9093" KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT" KAFKA_INTER_BROKER_LISTENER_NAME: "INTERNAL" KAFKA_AUTO_CREATE_TOPICS_ENABLE: "true" labels: - "traefik.enable=true" - "traefik.tcp.routers.kafka.rule=HostSNI(`*`)" - "traefik.tcp.routers.kafka.entrypoints=kafka" - "traefik.tcp.services.kafka.loadbalancer.server.port=9093" networks: kafka_network: driver: bridge proxy: external: true