xdebug Отладка запроса из другого docker контейнера (не с того, где IDE)
Primary tabs
Проблема
Проблема заключается в том, что при запросе с GET-параметром (?XDEBUG_SESSION_START) из от одного микросервиса к другому (оба в разных контейнерах), сессия отладки в IDE на основной ОС не начинается (хотя IDE и ожидает соединения из контейнера).
При этом если делать тот же запрос (напрямую в контейнер микросервиса), напр. из postman-а - отладка работает нормально.
Конфиг xdebug-а внутри контейнера:
zend_extension=xdebug xdebug.mode=debug xdebug.client_host=host.docker.internal xdebug.client_port=9004 xdebug.idekey="netbeans-xdebug"
Из того же контейнера, где выполняется код, можно попробовать выполнить curl запрос, например:
curl http://host.docker.internal:9731/api/v1/info?XDEBUG_SESSION_START=netbeans-xdebug
-- по-идее не работает сетевой запрос в приложении в этом контейнере, то не сработает и такой простой пример в терминале того же контейнера (как в моем случае)
Возможная причина & Решение
В нашем случае оказалось, что просто во втором приложении точка останова стояла не там где надо - в месте, куда выполнение и не доходило. Остальные настройки были проведены верно.
Вывод: для проверки лучше ставить точку останова на скрипт, являющейся точкой входа вашего приложения (прямо на первую строчку, иначе отлаживать проблему можно очень долго))
См.
- IP для обращения из контейнера http://fkn.ktu10.com/?q=node/11484
- Отладка в vscode http://fkn.ktu10.com/?q=node/15609
- Log in to post comments
- 462 reads