Мне нужно создать изображение кафки с уже созданными темами - PullRequest
2 голосов
/ 19 сентября 2019

У меня есть требование, что мне нужно настроить kafka локально с темами, уже находящимися в контейнере. Я использую ladoop/fast-data-dev для этого

Как вручную я делаю это -

docker run -d --name landoopkafka -p 2181:2181 -p 3030:3030 -p 8081:8081 -p 8082:8082 -p 8083:8083 -p 9092:9092 -e ADV_HOST=localhost landoop/fast-data-dev

После выполнения этой команды мой контейнер запущен и работает.

Теперь я иду в bash внутри этого контейнера, как docker -exec -it landopkafka bash

и создаю тему, используя эту команду

kafka-topics --zookeeper localhost:2181 --create --topic hello_topic --partitions 1 --replication-factor 1

Моя тема создана.

Но мое требование заключается в том, что мне нужно иметь файл Docker, в котором будет создана тема, и мне просто нужно его запустить.

ИЛИ

Создайте файл Docker, который мне нужен для запуска

Ребята, мне нужна помощь в этом, так как я абсолютно новичок в Docker и Kafka

Ответы [ 2 ]

0 голосов
/ 19 сентября 2019

Вы можете создать файл docker-compose, как этот ...


version: '2'

services:
  zookeeper:
      image: wurstmeister/zookeeper:latest
      ports:
        - "2181:2181"

  kafka:
      image: wurstmeister/kafka:0.10.2.1
      ports:
        - "9092:9092"
      environment:
        KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
        KAFKA_CREATE_TOPICS: "MY_TOPIC_ONE:1:1,/
                              MY_TOPIC_TWO:1:1"
        KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      volumes:
        - /var/run/docker.sock:/var/run/docker.sock

Поместите свои темы туда и запустите docker-compose up

0 голосов
/ 19 сентября 2019

Вместо этого вы должны попытаться использовать образ wurstmeister / kafka, который поддерживает переменную среды, для создания тем при запуске контейнера.

Конечно, в контейнере Landoop есть куча других полезных вещей, но звучит только как вы.хотите Kafka и не хотите возиться с редактированием каких-либо Dockerfiles

Другим решением является запуск второго контейнера после Kafka , который запускает сценарии создания, а затем останавливается

...