I have a Docker Compose based Swarm with a Zookeeper service that starts fine, but the Kafka service cannot start.
It keeps using the default KAFKA_ADVERTISED_LISTENERS
property:
debezium_kafka.1.5hhrqfp5kqts@stephane-pc | Using ZOOKEEPER_CONNECT=zookeeper:2181
debezium_kafka.1.5hhrqfp5kqts@stephane-pc | Using KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.0.83.239:9092
And of course it cannot find the listeners specified in the map:
debezium_kafka.1.5hhrqfp5kqts@stephane-pc | java.lang.IllegalArgumentException: requirement failed: inter.broker.listener.name must be a listener name defined in advertised.listeners. The valid options based on currently configured listeners are PLAINTEXT
My docker-compose-dev.yml
file contains:
kafka:
image: debezium/kafka:1.2
deploy:
mode: global
ports:
- "9094:9094"
- "9095:9095"
networks:
common:
volumes:
- "~/dev/docker/projects/debezium/volumes/kafka/data:/kafka/data"
- "~/dev/docker/projects/debezium/volumes/kafka/logs:/kafka/logs"
environment:
ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_LISTENERS: FROM_DOCKER_NETWORK://kafka:9092,FROM_HOST://kafka:9094
KAFKA_ADVERTISED_LISTENERS: FROM_DOCKER_NETWORK://kafka:9092,FROM_HOST://localhost:9094
KAFKA_ALLOW_PLAINTEXT_LISTENER: "yes"
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,FROM_DOCKER_NETWORK:PLAINTEXT,FROM_HOST:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: FROM_DOCKER_NETWORK
KAFKA_AUTO_CREATE_TOPICS_ENABLE: "false"