Отладка API Go с помощью Delve и Docker — не удается получить доступ к API с помощью Postman

Я пытаюсь отлаживать Go API с помощью Docker и Goland.

Я следовал этому руководству и смог заставить его работать, когда я отлаживаю приложение Go.

Но мое приложение представляет собой API, поэтому оно запускается, и я ожидаю, что когда я сделаю запрос через Postman, мой API должен остановиться в точке останова.

Происходит то, что API не отвечает и не вызывается.

Вот журнал приложения Goland:

API server listening at: [::]:40000
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.

[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
 - using env:   export GIN_MODE=release
 - using code:  gin.SetMode(gin.ReleaseMode)

[GIN-debug] GET    /operations/:operation_id/keys --> main.displayKeysList (5 handlers)
[GIN-debug] HEAD   /operations/:operation_id/keys --> main.main.func1 (4 handlers)
[GIN-debug] Listening and serving HTTP on :9999

Он говорит мне, что мое приложение работает на порту 9999, но delve работает на порту 40000.

Я попробовал оба порта 9999 и 40000, но ни один из них не работает для моего запроса.

Что мне не хватает?


person Juliatzin    schedule 01.08.2019    source источник
comment
Вы запускаете это внутри докера? Откуда вы получаете доступ к этим портам? (внутри докера по сравнению с хост-машиной?) Как вы вызывали докер? вы установили отображение портов?   -  person dm03514    schedule 01.08.2019
comment
Ну, когда я не использую отладчик, я использую его через docker-compose, и да, я перенаправляю порты, поэтому я могу получить к нему доступ вне докера, но при использовании отладчика я больше не могу получить к нему доступ.   -  person Juliatzin    schedule 01.08.2019


Ответы (1)


Ваше приложение по-прежнему работает, и ему необходимо открыть и перенаправить порт 9999 для выполнения запросов к нему.

Порт 40000 используется Delve, и вы должны подключиться к удаленной службе с помощью IDE, чтобы разрешить ее запуск/продолжение с использованием конфигурации запуска Go Remote.

Если у вас все еще есть проблемы с этим, либо поднимите вопрос на https://youtrack.jetbrains.com/issues/Go и предоставьте более подробную информацию об этом, скриншоты или код для репликации было бы здорово иметь, или отправьте нам запрос на Twitter/Gophers Slack на канале #goland.

person dlsniper    schedule 01.08.2019
comment
Я добавляю ошибку переадресации портов с отладчиком! Спасибо за ответ, помог найти решение - person Juliatzin; 01.08.2019