Docker容器中的Java 9 Tomcat 9无法远程debugging
我有一个基于opendjdk:8-slim
的Docker容器opendjdk:8-slim
和已安装的Tomcat 9,我正在debugging从我的IDE(IntelliJ)部署的应用程序 – IDE在Docker主机上运行。 我使用以下configuration运行Tomcat
CATALINA_OPTS="-Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=49520 \ -Dcom.sun.management.jmxremote.rmi.port=49520 \ -Dcom.sun.management.jmxremote.ssl=false \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.local.only=false \ -Djava.rmi.server.hostname=10.0.75.1 \ -agentlib:jdwp=transport=dt_socket,address=49540,suspend=n,server=y"
一切都很好 – 我可以将IDE连接到容器。 另外,以下命令可以工作(从docker主机执行) – 它可以连接到容器中的进程(容器中的端口49540映射到主机上的端口49540):
docker-host$ telnet localhost 49540
现在我想升级到Java 9.我把基本镜像从openjdk:8-slim
改成了openjdk:9-slim
,我无法连接到docker主机的debugging器端口。 同样从IDE,我得到SocketTimeoutException: Connection reset
。 但是,从容器内部我可以通过telnet
连接到debugging器。
我尝试了几个来自openjdk
仓库的Java 9镜像,还有其他的仓库,比如说adenix/java
,但是不幸的是结果是一样的。
最后,我发现如何使用Alan Bateman提供的评论中的信息来工作。
不用在CATALINA_OPTS
中设置debugging设置(JDK 8没有问题),我设置了JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=*:49540,server=y,suspend=n"
Tomcat与catalina.sh jpda run
。 具体的IP地址(例如address=192.168.16.1:49540
)对我来说仍然不起作用,尽pipe可以从容器内访问IP地址。
- 如何在Mac上使用JetBrains Rider开发和debugging运行在Docker中的.NET Core应用程序
- 远程debuggingDocker中的节点9
- 在Linux docker容器中远程debugging.NET Core应用程序
- 如何在交互模式下运行docker-compose容器,以便其他容器可以看到它?
- 如何在使用stream浪者泊坞窗的IntelliJ思想中debuggingpython
- 通过远程debugging器连接Docker容器
- 使用XDebug从Docker Container进行远程debugging不起作用
- 更好的方式远程debuggingDocker容器与Eclipse + Pydev的Odoo / Python?
- Xdebug忽略Netbeans中的Docker容器内创build的Php项目的断点