Доступ к приложению Django в контейнере Docker из другого контейнера Docker
Цель
У меня есть docker-compose.yml
, на котором, помимо прочего, запущены три контейнера Docker, находящиеся в одной сети: приложение Django, Nginx и образ Selenium. Моя цель - иметь возможность тестировать приложение Django из контейнера Selenium.
Проблема
При попытке выполнить get-запросы из драйвера Selenium
driver.get("http://nginx:80")
Django отказывает в соединении на основании того, что хост запрещен. Я получаю:
Invalid HTTP_HOST header: 'nginx'. The domain name provided is not valid according to RFC 1034/1035.
Я попробовал добавить имя контейнера (Nginx) в переменную ALLOWED_HOSTS
в settings.py
, но он все равно почему-то не принимает его. Есть идеи?
Решение
Проще говоря, RFC 1034/1035 не допускает подчеркивания (_) в доменных именах, и, похоже, Django проверяет это. Я просто заменил их на дефисы (-), и проблема была устранена.