在使用Docker-Compose时,使用JPDA远程debugging将不会通过eclipse连接到Tomcat
我对Docker很新,所以这可能是简单的,我做错了。 有了所有的解决scheme,在使用'Docker run'启动Tomcat容器时,我已经能够使用eclipse进行远程debugging了。
docker run -it --rm -e JPDA_ADDRESS=8000 -e JPDA_TRANSPORT=dt_socket -p 8888:8080 -p 8000:8000 tomcat:8.0-jre8 /usr/local/tomcat/bin/catalina.sh jpda run
但是,当使用docker-compose时,我得到一个“无法连接到远程虚拟机连接被拒绝”对话框。
docker-compose up
docker-compose.yml设置:
tomcat: image: tomcat:8.0-jre8 # START - REMOTE DEBUGGING SETTINGS # Didn't work with or without this network_mode setting. But the bridge settings as seen with 'docker container inspect *CID*' looks almost identical to the working solution network_mode: bridge environment: - JPDA_ADDRESS:8000 - JPDA_TRANSPORT:dt_socket entrypoint: /usr/local/tomcat/bin/catalina.sh jpda run # END - REMOTE DEBUGGING SETTINGS deploy: restart_policy: condition: on-failure placement: constraints: [node.role == manager] ports: - 8888:8080 # REMOTE DEBUGGING SETTINGS jpda port - 8000:8000
我使用“docker run”的eclipse设置是:
Remote Java Application: Host: localhost Port: 8000
注意:通过docker-compose设置,我还可以在启动输出中看到预期的打印内容:
Listening for transport dt_socket at address: 8000
而且在两个部署中,我都可以通过暴露的端口8888访问Web服务的function。 这个简单的链接返回“你好”。
http://localhost:8888/MyEmulatorService/rest/MES/
任何想法,为什么我不能远程debugging时启动这种方式? 我怀疑networkingconfiguration的设置方式有细微的差别。
我的一个哥们搞清楚了。 即使启动输出使得它显示为一切正常,catalina.sh使用的默认端口和传输是8000,dt_socket。
环境variables没有被传递到容器中,这导致了破坏。 也许别人可以解释如何影响.sh脚本?
通过隧道进入容器并列出环境variables来检测到这个问题。
docker exec -it *CID* bash env
对我的docker-compose.yml文件的更改如下所示:
environment: JPDA_ADDRESS: 8000 JPDA_TRANSPORT: dt_socket
- 如何debuggingREDIS,APACHE发出一个Docker容器?
- WebStorm不能通过TCP连接到Docker守护进程
- 从运行tomcat服务器的docker容器获取debugging信息
- debugging节点(> = 6.3)从docker集装箱
- Golang远程debugging器与vscode
- Xdebug忽略Netbeans中的Docker容器内创build的Php项目的断点
- JMX和在Docker内的Tomcat上进行debugging
- Docker运行在vagrant + pycharm远程pythondebugging中
- 使用Mocha + TypeScript + Docker远程debuggingnode.js。 debugging器不反映实际的执行?