Удаленная отладка приложения Openshift в Intellij-Idea - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть Java-приложение, работающее на удаленном кластере openshift, и я хочу отладить приложение с моего локального компьютера с помощью Intellij-Idea.Приложение создается Jenkinsfile на другом удаленном сервере jenkins (сборка gradle, сборка docker и отправляется в openshift, где оно автоматически развертывается).

Dockerfile предоставляет порт 9009, и поэтому моя конфигурация удаленной отладки Intellij выглядит следующим образом: Конфигурация отладки

С локальным хостом в конфигурации отладки мне нужна переадресация портов openshift:

oc port-forward my-pod 9009
Forwarding from 127.0.0.1:9009 -> 9009

Когда я запускаю отладчик, в Intellij я получаю следующую ошибку:

Error running 'DTC Remote Debug':
Unable to open debugger port (localhost:9009): java.net.ConnectException "Connection refused: connect"

В то же время терминал с переадресацией портов показывает:

Handling connection for 9009
E0927 09:52:33.711817   5996 portforward.go:331] an error occurred forwarding 9009 -> 9009: error forwarding port 9009 to pod ad370...c010, uid : exit status 1: 2019/09/27 03:52:33 socat[129691] E connect(5, AF=2 127.0.0.1:9009, 16): Connection refused

Выполняя Nmap-сканирование по URL-адресу, где я получаю index.html моего приложения, я получил следующее:

nmap -sS my-openshift-url
Starting Nmap 7.80 ( https://nmap.org ) at 2019-09-27 15:01 Mitteleuropõische Sommerzeit
Nmap scan report for my-openshift-url (IP-Address)
Host is up (0.0043s latency).
rDNS record for IP-Address: dispatch-my-domain
Not shown: 997 filtered ports
PORT     STATE  SERVICE
80/tcp   open   http
443/tcp  open   https
9009/tcp closed pichat

Nmap done: 1 IP address (1 host up) scanned in 6.10 seconds

Я думаю, проблема в том, что закрыт порт 9009, но я понятия не имею, как ямогу открыть этот порт на моем кластере openshift.Я уже установил несколько переменных окружения в веб-интерфейсе openshift (просто чтобы убедиться):

DEBUG            TRUE
DEBUG            true
DEBUGGING        TRUE
DEBUGGING        true
JAVA_DEBUG       TRUE
JAVA_DEBUG       true
JAVA_DEBUG_PORT  9009

Но я не могу заставить его работать.Если я переключу переадресацию портов на 8080, я смогу получить доступ к index.html через localhost: 8080 из моего браузера.Я не знаю, нужно ли мне что-то изменить в коде проекта (gradle, docker, jenkins и т. Д.) Или я могу просто как-то открыть порт развернутой службы в openshift ...

Есличто-то не понятно, или если я что-то пропустил, просто скажите мне.Я рад за каждый совет.

С уважением,

Кристоф

1 Ответ

0 голосов
/ 30 сентября 2019

Добавление следующей переменной среды в openshift сделало свое дело:

JAVA_TOOL_OPTIONS   -agentlib:jdwp=transport=dt_socket,address=9009,server=y,suspend=n

Все остальные переменные среды, указанные выше, устарели ...

...