2017-10-10 137 views
3

我有一个Dockerfile与此内容:远程调试Java 9

FROM openjdk:9 

WORKDIR /project 

ADD . /project 

EXPOSE 5005 

我的搬运工,compose.yml看起来是这样的:

version: "3.2" 
services: 
    some-project: 
    build: . 
    ports: 
     - target: 5005 
     published: 5005 
     protocol: tcp 
     mode: host 
    command: "java '-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005' SomeClass" 

当我做docker-composer up我看到一条消息“正在收听地址:5005的DT_socket传输”。但是当我尝试连接jdb或者Idea时,我得到“java.io.IOException:握手失败 - 连接关闭”。

一切工作正常,如果我改变openjdk:9openjdk:8。不过,我的项目需要Java 9。

+1

还看到:https://youtrack.jetbrains.com/issue/IDEA-173607 – Henry

回答

0

这不是一个答案只是一个确认。其实这是几乎一模一样,我们如何做到这一点:

  • ports: <someport>:5005
  • -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
  • 在IDE中远程调试器连接到<someport>
+0

DO你用java 9做到了吗? –

+0

不,java 8.所以“这不是答案”。 – lexicore