diff --git a/packages/modules/kafka/src/kafka-container.ts b/packages/modules/kafka/src/kafka-container.ts index 8b711e70e..9909b9749 100644 --- a/packages/modules/kafka/src/kafka-container.ts +++ b/packages/modules/kafka/src/kafka-container.ts @@ -300,10 +300,17 @@ export class KafkaContainer extends GenericContainer { } private commandZookeeper(): string { - let command = "echo 'clientPort=" + DEFAULT_ZOOKEEPER_PORT + "' > zookeeper.properties\n"; + const port = DEFAULT_ZOOKEEPER_PORT; + + let command = `echo 'clientPort=${DEFAULT_ZOOKEEPER_PORT}' > zookeeper.properties\n`; command += "echo 'dataDir=/var/lib/zookeeper/data' >> zookeeper.properties\n"; command += "echo 'dataLogDir=/var/lib/zookeeper/log' >> zookeeper.properties\n"; command += "zookeeper-server-start zookeeper.properties &\n"; + + command += `echo "Waiting for ZooKeeper to be ready on port ${port}..."\n`; + command += `while ! (echo > /dev/tcp/localhost/${port}) &> /dev/null; do sleep 0.1; done\n`; + command += `echo "ZooKeeper is ready."\n`; + return command; } }