Как я могу предотвратить перезапись URL-адреса в EventStore с помощью Docker?

Я пытаюсь запустить сервер (EventStore) в Docker, в данном случае их собственный образ. Я запускаю этот образ с флагом -P для назначения внешних портов. (Мое использование делает конкретное назначение порта непрактичным.)

Когда я запускаю образ EventStore, порт 2113 (их веб-порт) сопоставляется с каким-то старшим портом, например 33125. Если я ввожу (my_ip):33125 в своем браузере, он заменяется чем-то вроде (my_ip):2113/web/ . Конечно, вне порта Docker 2113 ничего не значит!

Как я могу предотвратить это переписывание или хотя бы содержать все это внутри Docker?


person Greg    schedule 27.06.2017    source источник


Ответы (2)


Вы столкнулись с известной проблемой. В документах говорится:

Примечание. Пользовательский интерфейс администратора и потоки атомов будут работать только в том случае, если вы опубликуете http-порт узла на соответствующий порт на хосте. (т.е. вам нужно запустить контейнер с -p 2113:2113)

И это открытый вопрос относительно этого:

https://github.com/EventStore/eventstore-docker/issues/6

Кажется, это внутренняя проверка, которую выполняет EventStore, поэтому ее очень сложно решить вне кода сервера.

person Robert    schedule 27.06.2017

Теперь можно установить переменную среды EVENTSTORE_EXT_HTTP_PORT, чтобы сообщить хранилищу событий, как выполняется сопоставление портов. Например, если EVENTSTORE_EXT_HTTP_PORT имеет значение 52040, то сопоставление портов должно быть -p 52040:2113.

Дополнительную информацию можно найти в документации по магазину событий: https://eventstore.com/docs/server/command-line-arguments/#interface-options

Я протестировал его с docker run eventstore/eventstore -e EVENTSTORE_EXT_HTTP_PORT=52040 -p 52040:2113 и смог получить доступ к интерфейсу через порт 52040.

person octagon_octopus    schedule 20.05.2020