2017-07-28 123 views
0

我對Docker非常陌生,所以這可能是一件簡單的事情,我做錯了。 有了所有的解決方案,在使用'Docker run'啓動Tomcat容器時,我可以使用eclipse進行遠程調試。使用JPDA遠程調試時不會通過eclipse連接到Tomcat

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 up

泊塢窗,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

我的日食的設置與「泊塢窗運行的工作有:

Remote Java Application: Host: localhost Port: 8000

注意:使用docker-compose設置我也在啓動輸出中看到預期的打印:

Listening for transport dt_socket at address: 8000

,並與雙方的部署,我可以通過暴露端口8888,即訪問Web服務的功能。這個簡單的鏈接返回'你好'。

http://localhost:8888/MyEmulatorService/rest/MES/

爲什麼我不能遠程調試推出這樣的時候有什麼想法?我懷疑網絡配置的設置方式存在細微差別。

回答

1

我的一個哥們想通了。即使啓動輸出顯示所有內容都正常工作,並且catalina.sh使用的默認端口和傳輸是8000,dt_socket。

環境變量沒有被傳遞到容器中,這導致了破壞。也許別人可以解釋如何影響.sh腳本?

通過隧道進入容器並列出環境變量來檢測到此問題。

docker exec -it *CID* bash 
env 

我的搬運工,compose.yml文件的變化現在看起來像:

environment: 
    JPDA_ADDRESS: 8000 
    JPDA_TRANSPORT: dt_socket 
相關問題