Я пишу приложение, состоящее из нескольких микросервисов с загрузкой на основе w760, с обратным прокси-сервером на основе zuul спереди -
Он работает, когда я запускаю службы на своей машине, но для развертывания сервера я бы хотел использовать докер для служб, но сейчас это кажется невозможным.
Обычно у вас есть фиксированный "внутренний" порт и рандомизированные порты на внешней стороне контейнера. Но приложение в контейнере не знает внешний порт (и IP).
Инструменты Netflix соответствуют тому, что я хотел бы написать эффективную архитектуру микросервиса, и концептуально мне очень нравится докер. Насколько я могу судить, было бы очень сложно запустить контейнер, собрать внешний порт на хосте и передать его в приложение, потому что вы не можете просто изменить порт после запуска приложения.
Есть ли способ использовать eureka с клиентами на докере?
[Обновление] Думаю, я плохо справился с этой проблемой. Поэтому, возможно, это еще раз поясняет это:
Сам сервер eureka может работать в докере, так как у меня только один, а внешний порт не имеет значения. Я могу использовать функцию ссылки для доступа к ней от клиентов.
Проблема заключается в URL-адресе, в котором регистрируются клиенты. Это, например, https://localhost:8080/, но из-за динамического назначения порта он доступен только через https://localhost:54321/
Итак, eureka вернет неверный URL-адрес для служб.
UPDATE Я обновил свой ответ ниже, так что смотрите там.