I want to launch a Kafka container with Docker Compose on Amazon EC2 instance with Graviton2 processor. Here is the service definition.
broker:
container_name: broker
image: confluentinc/cp-kafka:latest.arm64
env_file:
- broker.env
networks:
- mynetwork
Here is a snippet of broker.env
# Common Cluster ID
CLUSTER_ID=someId
# Node Configuration
KAFKA_NODE_ID=1
KAFKA_PROCESS_ROLES=broker,controller
# Listeners and Advertised Listeners
KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:29092,CONTROLLER://0.0.0.0:29093,PLAINTEXT_HOST://0.0.0.0:9092
KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://broker:29092,PLAINTEXT_HOST://localhost:9092
The container does not launch. Here is the log.
Exception in thread "main" java.lang.IllegalArgumentException: requirement failed: advertised.listeners cannot use the nonroutable meta-address 0.0.0.0. Use a routable IP address. at scala.Predef$.require(Predef.scala:337) at kafka.server.KafkaConfig.validateValues(KafkaConfig.scala:1022) at kafka.server.KafkaConfig.<init>(KafkaConfig.scala:852) at kafka.server.KafkaConfig.<init>(KafkaConfig.scala:184) at kafka.tools.StorageTool$.$anonfun$execute$1(StorageTool.scala:79) at scala.Option.flatMap(Option.scala:283) at kafka.tools.StorageTool$.execute(StorageTool.scala:79) at kafka.tools.StorageTool$.main(StorageTool.scala:46) at kafka.tools.StorageTool.main(StorageTool.scala)
I do not know what the error means. confluentinc/cp-kafka:latest
runs successfully with the broker.env
on my Windows laptop.
ChatGPT said something like this:
The
cp-kafka
image may triggerkafka-storage.sh format
on first start (especially for KRaft mode), and fails if it reads invalid listeners like0.0.0.0
.
Is this true? How do I launch the container on ARM64 successfully?