Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Java 10 debug in docker container? / 3 сообщений из 3, страница 1 из 1
13.08.2018, 11:00
    #39686728
_webdev_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java 10 debug in docker container?
Господа,

собственно кто-то интересовался данной темой? Всё должно быть вродь просто. Примеры есть, делаю всё аналогично, нооо всё время получаю.
Да, я знаю, что это не полностью тема о java, но, наверняка много разработчиков использует.

Код: java
1.
Error running 'REMOTE_DEBUG': Unable to open debugger port (localhost:49540): java.net.SocketException "Connection reset"



Создаю имейдж с таким вот параметром.

Код: java
1.
ENTRYPOINT ["java","-Xdebug","-agentlib:jdwp=transport=dt_socket,address=49540,server=y,suspend=n","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]




Приложение стартует в начале логи пишет

Код: java
1.
2.
jdev@p ~ $ sudo docker run -p 8888:1111 -p 127.0.0.1:49540:49540 --name 215 nfa-215
Listening for transport dt_socket at address: 49540




Захожу в контейнер #netstat -tupln
Код: java
1.
2.
3.
4.
5.
root@b3b53fd67d68:/# netstat -tupln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:49540         0.0.0.0:*               LISTEN      1/java              
tcp6       0      0 :::1111   




На локальной машине #netstat -tupln
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
netstat -tupln
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:40737         0.0.0.0:*               LISTEN      4874/java           
tcp        0      0 127.0.0.1:49540         0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:42861           0.0.0.0:*               LISTEN      4874/java           
tcp        0      0 127.0.0.1:63342         0.0.0.0:*               LISTEN      4874/java           
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:6942          0.0.0.0:*               LISTEN      4874/java  




Ну и коннекчусь с Интеллж пытался (localhost, 127.0.0.1, 0.0.0.0) и соответствующий порт.
Код: java
1.
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:49540



Ни в какую! Есть у кого идеи?

Нашёл следующие темя, но они мне особо не помогли..

https://stackoverflow.com/questions/47168235/cant-remotely-debug-on-java-9-tomcat-9-in-docker-container

http://www.oracle.com/technetwork/java/javase/9-notes-3745703.html#JDK-8041435
JDWP socket connector accept only local connections by default
The JDWP socket connector has been changed to bind to localhost only if no ip address or hostname is specified on the agent command line. A hostname of asterisk (*) may be used to achieve the old behavior which is to bind the JDWP socket connector to all available interfaces; this is not secure and not recommended.
...
Рейтинг: 0 / 0
13.08.2018, 23:52
    #39687175
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java 10 debug in docker container?
Я не знаю как работает докер. Но к localhost можно коннектится только
находясь физически на нём же. Если ты запускаешь контейнеры
и поднимаешь на них листенеры - то они должны быть скорее всего
НЕ-локалхост а должны быть адресом виртуального сетевого адаптера.
...
Рейтинг: 0 / 0
14.08.2018, 10:58
    #39687324
_webdev_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java 10 debug in docker container?
maytonЯ не знаю как работает докер. Но к localhost можно коннектится только
находясь физически на нём же. Если ты запускаешь контейнеры
и поднимаешь на них листенеры - то они должны быть скорее всего
НЕ-локалхост а должны быть адресом виртуального сетевого адаптера.

Спасибо за ответ.. Да, в этом и была загвоздка. Решил, как только опубликовал пост. ))

Если обращаться извне, то нужно указывать хост. В данном случае - hostname или IP докер контейнера.
Код: java
1.
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=dockerHostnameOrIP:49540
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Java 10 debug in docker container? / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]