在Docker容器中调试JEE应用程序

时间:2019-02-08 15:52:45

标签: java docker debugging docker-compose

我想调试在Wildfly上运行的容器化应用程序。但这是行不通的。 :(

我的应用程序的Dockerfile:

FROM jboss/wildfly
ADD standalone-custom.xml /opt/jboss/wildfly/standalone/configuration/ 
EXPOSE 9990 
EXPOSE 8787
CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-c", "standalone-custom.xml", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0", "--debug", "8787"]

docker-compose.yml:

version: '3'
...

services:
...

  myappservice:
    image: myappimage
    ports:
      - "8080:8080"
      - "8787:8787"
      - "9990:9990"
    ...

当我尝试附加调试器时:

jdb -attach localhost:8787

我收到以下信息:

  

java.io.IOException:握手失败-连接过早关闭     在   jdk.jdi / com.sun.tools.jdi.SocketTransportService.handshake(SocketTransportService.java:142)     在   jdk.jdi / com.sun.tools.jdi.SocketTransportService.attach(SocketTransportService.java:255)     在   jdk.jdi / com.sun.tools.jdi.GenericAttachingConnector.attach(GenericAttachingConnector.java:119)     在   jdk.jdi / com.sun.tools.jdi.SocketAttachingConnector.attach(SocketAttachingConnector.java:83)     在   jdk.jdi / com.sun.tools.example.debug.tty.VMConnection.attachTarget(VMConnection.java:519)     在   jdk.jdi / com.sun.tools.example.debug.tty.VMConnection.open(VMConnection.java:328)     在jdk.jdi / com.sun.tools.example.debug.tty.Env.init(Env.java:63)在   jdk.jdi / com.sun.tools.example.debug.tty.TTY.main(TTY.java:1082)

     

致命错误:无法附加到目标VM。

如果有任何建议,我将不胜感激。

0 个答案:

没有答案