Я использую Кафку в 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-адрес)?
Есть ли другой способ решения этой проблемы?