2016-02-10 4 views
1

Bascially Я пытаюсь настроить один экземпляр док-станции Redis-sentinel и хочу совершать вызовы из своего контейнера приложения. Проблема, которую я запускаю, такова: контейнер redis-sentinel связан с контейнером приложения.Redis sentinel Docker setup

Итак, изначально приложение спрашивает о дозорном процессе о хозяине redis. Затем дозорчик говорит, что это «127.0.0.1». Но контейнер приложения предполагает, что он локален для контейнера. Это можно преодолеть с помощью параметров message-ip/announce-port, переданных в начале процесса дозорного. Однако проблема заключается в следующем:

контейнер redis-sentinel пытается запустить до установления связи. Таким образом, даже во время дозорного процесса запуск сетевого интерфейса, следовательно, IP-адрес недоступен.

Одним из решений, о которых я мог думать, является ожидание, пока не будет установлен сетевой интерфейс. Таким образом, вопрос тогда сводится к тому, «как может контейнер источника обнаруживать свой недавно установленный сетевой интерфейс?» Есть ли что-нибудь в докере в исходном контейнере, чтобы он мог обнаружить разные ссылки? »

Все ссылки на файлы, находящиеся в файле docker-compose.

Если есть и другие простые решения, я также могу попробовать это.

ответ

0

Итак, решение, которое сработало для меня, просто считывает файл/etc/hosts в исходном контейнере. Я занят до тех пор, пока не будет установлена ​​связь, а затем используйте этот IP-адрес сетевого интерфейса, чтобы начать процесс дозорного. Это просто решение для устранения пробелов, и оно не масштабируется. Redis-sentinel все еще не готов к производству в докеризируемом формате, как это подтверждено в этом post. Поэтому я решил установить Redis/sentinel на физические хосты.

Смежные вопросы