Невозможно получить доступ к контейнерам из сборки кода

У меня возникла проблема с доступом к контейнерам из сборки кода. У меня есть открытая служба GraphQL с последующей службой аутентификации и базой данных postgresql, запущенная через Docker Compose. Их запуск и тестирование работают нормально локально, однако я не могу получить правильную комбинацию имен хостов в кодовой сборке.

Похоже, мой тест может быть запущен, если я попаду в конечную точку GraphQL в 0.0.0.0:8000, однако, как только мой контейнер GraphQL попытается связаться с нисходящей службой, мне будет отказано в соединении. Я попытался подключиться к службе аутентификации изнутри службы GraphQL по адресу auth:8001, 0.0.0.0:8001, с открытым портом 8001 и настроив подключенную сеть. Я всегда получаю сообщение об отказе в соединении.

Я прикрепил часть журналов сборки кода.

Есть идеи, что мне может не хватать?

Контейнер compose_graphql_1 5c665f5f812d docker-compose_auth "/ bin / sh -c app" 2 секунды назад вверх Менее секунды 0.0.0.0:8001->8001/tcp docker-compose_auth_1 b28148784c04 postgres: 10.4 "docker-entrypoint ..." 2 секунды назад Вверх на 1 секунду 0.0.0.0:5432->5432/tcp docker-compose_psql_1

Контейнер 28.08.2018 05:37:17 Выполняется команда go test; CD ../..

Зарегистрируйте панику: [{"message": "rpc error: code = Unavailable desc = все SubConns находятся в состоянии TransientFailure, последняя ошибка соединения: ошибка соединения: desc = \" transport: Ошибка при наборе номера tcp 0.0.0.0:8001: connect: в соединении отказано \ "", "путь":


person Dakota Hipp    schedule 28.08.2018    source источник


Ответы (1)


С "хост-машины" моя открытая служба GraphQL могла быть достигнута только с использованием IP-адреса 0.0.0.0. Внутренняя сеть была настроена правильно, и каждая служба могла быть достигнута в <NAME>:<PORT>, как и ожидалось, однако в случае ошибки вместо имени хоста будет отображаться IP-адрес (172.27.0.1).

Моя проблема заключалась в том, что все внутренние соединения еще не были готовы, что приводило к ошибке «соединение отклонено». Команда sleep 5 после docker-compose up дала моим службам время для полной инициализации перед тестированием.

person Dakota Hipp    schedule 01.09.2018