Какие используются практики для отладки кода в проекте, построенном на микросервисах в Docker контейнерах?
Получил свою первую работу php backend разработчика и поплыл при первой же задаче, чувствую себя в полном смятении.
Банально не понимаю как мне отлаживать код. Никогда не работал с Docker и Docker Compose.
Когда учился и проходил стажировку, разрабатывал всегда локально, с дебагом проблем не было. Либо выводил дампы в шаблонах либо пользовался DebugBar или пошаговой отладкой в IDE, через xDebug.
Понимаю, что вопрос до невозможности глупый, но как обычно делают отладку при запуске web-api приложений в Docker? Где делать дампы? Ведь все микросервисы это web API без фронта.
На проекте используется Lumen Framework
1) Почитайте про POSTMAN. Он, как раз шлет запросы прямиком на API и получает ответ от сервера. В ответах может быть и отладочная информация и подробности ошибок и прочее.
2) Можно настроить xdebug для phpstorm и docker. Просто погуглите, хотя мне всегда было достаточно п.1
Для изолированной отладки микросервисов можно использовать тесты.
Можно сразу писать функциональный тест на проблемный кейс. Его и проверять будет проще в процессе фикса, и можно оставить в проекте и быть более уверенным в том что проблема не повториться.
Преимущество такого подхода - тесты лежат рядом с проектом, их можно включить в пайплайн, и проверять при всех последующих изменениях, не нужно держать поднятой всю инфраструктуру.
Недостатки - трудно стартануть, необходимо продумать и подготовить заглушки для окружения (касается в первую очередь функциональных тестов, Unit-тесты лишены таких недостатков, но и для отладки они не всегда подходят)