Этот вопрос довольно глупый, он касается использования имен служб Docker в качестве имен хостов, поэтому вот контекст:
Я использую следующие контейнеры NGINX: base, php-fpm и nginx. У меня также есть проект Laravel, который находится в корневом проекте в папке / api. Я также запускаю haproxy на порту 5000 для балансировки нагрузки запросов по контейнерам php-fpm.
Базовый контейнер содержит среду linux, из которой я могу запускать команды для phpunit, npm и буквально иметь доступ к файлам других контейнеров, которые отправляются с использованием тома из docker-compose.
Php-fpm содержит среду для запуска PHP.
Nginx содержит сервер NGINX, который настроен для хранения двух веб-сайтов: корневого веб-сайта (localhost) и поддомена api (api.localhost). Файл api. subdomain указывает на папку / api в корневом проекте, а корневой веб-сайт (localhost) указывает на папку / frontend в корневом проекте.
Проблема в том, что в базовом сервисном контейнере я не могу запустить команду curl для доступа к веб-сайту api.localhost. Я попытался использовать curl для доступа к nginx, используя имя службы в docker-compose (это nginx):
$ curl http: // nginx
и он работает отлично, но папка внешнего интерфейса отвечает кодом из папки внешнего интерфейса. Я понятия не имею, как использовать имя службы для доступа к api.localhost через контейнер. я пытался
$ curl http: //api.nginx $ curl http: //api.localhost
Даже localhost не отвечает на команду curl:
$ curl http: // localhost
Есть ли способ получить доступ к субдомену из контейнера NGINX, используя имя службы в качестве имени хоста?






Я обнаружил, что поддомены не работают должным образом, используя имя NGINX и Docker Service в качестве имени хоста.
Вместо этого мне пришлось изменить структуру моего проекта, чтобы я не использовал поддомены при попытке получить доступ к URL-адресам, используя имена служб в качестве имен хостов.
Не уверен в этом, но настроил бы запись / etc / hosts в контейнере для api.something, чтобы указать на работу вашего контейнера.