Docker — использовать один и тот же URL-адрес внутри контейнера и снаружи

#docker #docker-compose #docker-networking #docker-network

#docker #docker-compose #docker-сеть #docker-сеть

Вопрос:

У меня есть контейнер docker, в котором запущен пользовательский интерфейс сервера идентификации с открытым исходным кодом. Это состоит из нескольких веб-приложений, и я запускаю их из одного и того же контейнера docker.

Одно веб-приложение вызывает конечную точку API в другом веб-приложении для получения файла конфигурации. Затем он перенаправляет на URL-адрес, найденный в этом файле конфигурации. Файл конфигурации генерируется динамически с использованием доменного имени в запросе.

Я делаю вызов со своего локального хоста на открытый порт. Затем эта страница вызывает другой webapi, используя имя службы docker-compose для URL: например: https://webapi2/well-known/openid-configuration . Это возвращает файл конфигурации с URL-адресами, которые используют webapi2 в качестве домена. Это приводит к перенаправлению браузера на https://webapi2/singin . Это не удается, потому что мой localhost не знает о wepapi1, ему нужно использовать uses localhost:44310.

Комментарии:

1. Будете ли вы знать домен заранее? вы можете настроить свой конфигурационный файл локальных хостов для сопоставления webapi2 с localhost.

2. Я буду это знать, но я пытаюсь избежать настройки вне docker. Наша цель — предоставить файл docker-compose другим разработчикам, которые будут иметь очень мало знаний о dock, er и не будут иметь доступа к редактированию своего файла hosts.

3. но будут ли другие разработчики всегда запускать локальный docker? Т.Е. нацеливание на localhost? или они будут обращаться к docker через какое-либо другое доменное имя, чтобы добраться до сервера, на котором размещен контейнер?