void withRaft() {
            this.envVars.computeIfAbsent("CLUSTER_ID", key -> clusterId);
            this.envVars.computeIfAbsent("KAFKA_NODE_ID", key -> getEnvVars().get("KAFKA_BROKER_ID"));
            addEnvVar("KAFKA_LISTENER_SECURITY_PROTOCOL_MAP", kafkaListenerSecurityProtocolMap());
            addEnvVar("KAFKA_LISTENERS", kafkaListeners());
            addEnvVar("KAFKA_PROCESS_ROLES", "broker,controller");

            String controllerQuorumVoters = String.format("%s@localhost:9094", getEnvVars().get("KAFKA_NODE_ID"));
            this.envVars.computeIfAbsent("KAFKA_CONTROLLER_QUORUM_VOTERS", key -> controllerQuorumVoters);
            addEnvVar("KAFKA_CONTROLLER_LISTENER_NAMES", "CONTROLLER");

            setWaitStrategy(Wait.forLogMessage(".*Transitioning from RECOVERY to RUNNING.*", 1));
        }
Add a {@link Supplier} that will provide a listener with format {@code host:port}.
Host will be added as a network alias.
<p>
The listener will be added to the list of default listeners.
<p>
Default listeners:
<ul>
    <li>0.0.0.0:9092</li>
    <li>0.0.0.0:9093</li>
</ul>
<p>
Default advertised listeners:
<ul>
     <li>{@code container.getHost():container.getMappedPort(9093)}</li>
     <li>{@code container.getConfig().getHostName():9092}</li>
</ul>
@param listenerSupplier a supplier that will provide a listener
@return this {@link KafkaContainer} instance
modules/kafka/src/main/java/org/testcontainers/containers/KafkaContainer.java