динамическое KAFKA_ADVERTISED_HOST_NAME на Kafka Continer - PullRequest
0 голосов
/ 06 мая 2018

Я использую Кафку в Docker-контейнере. Одним из требований является то, что kafka будет доступен производителю, работающему на хост-компьютере. Вот почему я установил KAFKA_ADVERTISED_HOST_NAME для своего хоста ip.

мой docker-compose.yml выглядит так:

version: '2'
services: 
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 192.168.1.10
      KAFKA_CREATE_TOPICS: "test:1:1"
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_LISTENERES: PLAINTEXT://localhost:9092
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock  

и все работает.

Проблема в том, что я хочу использовать этот файл docker-compose и на других машинах, и я не знаю, какой у них может быть IP.

попытка изменить ip на имя типа 'kafka' привело к тому, что он был недоступен для хост-машины (хотя все еще доступен из других контейнеров).

Есть ли способ использовать IP-адрес хоста в файле docker-compose без его "жесткого кодирования" (чтобы на разных машинах это был другой IP-адрес)?

Есть ли другой способ решения этой проблемы?

1 Ответ

0 голосов
/ 22 февраля 2019

Вы пытались использовать собственность? По какой-либо причине не рекомендуется для производственного использования, но может работать для вас

host.docker.internal

https://docs.docker.com/docker-for-mac/networking/#there-is-no-docker0-bridge-on-macos#i-want-to-connect-from-a-container-to-a-service-on-the-host

https://docs.docker.com/docker-for-windows/networking/#there-is-no-docker0-bridge-on-windows#i-want-to-connect-from-a-container-to-a-service-on-the-host

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...