0

I'm trying to dockerize my kafka application using docker-compose. So far I got this:

version: '2'
services:
    zookeeper:
        image: confluentinc/cp-zookeeper:latest
        environment:
            ZOOKEEPER_CLIENT_PORT: 2181
            ZOOKEEPER_TICK_TIME: 2000
        ports:
            - 22181:2181

    kafka:
        image: confluentinc/cp-kafka:latest
        depends_on:
            - zookeeper
        ports:
            - 29092:29092
        environment:
            KAFKA_BROKER_ID: 1
            KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
            KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092
            KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
            KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
            KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1

    init-kafka:
        image: confluentinc/cp-zookeeper:latest
        depends_on:
            - kafka
        entrypoint: ['/bin/sh', '-c']
        command: |
            "
            # blocks until kafka is reachable
            kafka-topics --bootstrap-server kafka:9092 --list

            echo -e 'Creating kafka topics'
            kafka-topics --bootstrap-server kafka:9092 --create --if-not-exists --topic test --replication-factor 1 --partitions 1

            echo -e 'Successfully created the following topics:'
            kafka-topics --bootstrap-server kafka:9092 --list
            "

This seem to work. The kafka server starts fine, the "test" topic is created as well. And if I run consumer/producer from outside while connecting to HOST-IP:29092. I'm trying to figure out what is the correct IP if I want to add my consumer to the docker-compose. I know that it should use port 9092 but I can't figure out what the host should it use.

Bob Sacamano
  • 549
  • 13
  • 35

0 Answers0