По сути, я пытаюсь настроить один экземпляр докера Redis-sentinel и хочу совершать вызовы из своего контейнера приложения. Проблема, с которой я столкнулся, заключается в следующем: контейнер redis-sentinel связан с контейнером приложения.
Итак, изначально приложение запрашивает у процесса-стража информацию о мастере Redis. Затем часовой говорит, что это «127.0.0.1». Но контейнер приложения предполагает, что он является локальным для контейнера. Это можно обойти с помощью параметров анонса-ip/announce-port, передаваемых в начале процесса Sentinel. Однако вопрос вот в чем -
контейнер redis-sentinel пытается запуститься до того, как будет установлена ссылка. Таким образом, даже во время запуска дозорного процесса сетевой интерфейс, следовательно, IP-адрес ссылки недоступен.
Одно из решений, которое я мог бы придумать, - это ждать, пока сетевой интерфейс не будет установлен. Таким образом, вопрос сводится к тому, «как контейнер с исходным кодом может обнаружить свой недавно установленный сетевой интерфейс? Есть ли что-нибудь, установленное докером в контейнере с исходным кодом, чтобы он мог обнаруживать разные ссылки?»
Связывание управляется в файле docker-compose.
Если есть какое-либо другое простое решение, я также могу попробовать его.