28

Vagrant で CoreOS を実行しています。Vagrant プライベート ネットワークの IP は 192.168.111.1 です。CoreOS の内部には、Tomcat 8.0.32 を含む Docker コンテナーがあります。ほとんどすべてが正常に機能します(アプリの展開など)。デバッグだけでは機能しません。Tomcat は 8080 ポートにマップされ、JPDA ポートは 8000 である必要があります。

事実

Tomcat JPDA は以下で構成されます。

JDPA_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000

コマンドから始まりcatalina.sh jpda startます。で実行したときのコンソールの出力docker-composeは次のとおりです。

tomcat | Listening for transport dt_socket at address: 8000

コンテナー情報から、ポートは次のようにマップされていると想定しています。

CONTAINER ID        IMAGE       COMMAND      CREATED             STATUS              PORTS                                            NAMES
dcae1e0148f8        tomcat      "/run.sh"    8 minutes ago       Up 8 minutes        0.0.0.0:8000->8000/tcp, 0.0.0.0:8080->8080/tcp   tomcat

私の docker イメージは、このDockerfileに基づいています。

問題

リモート デバッグ構成 (下のスクリーンショット) を実行しようとすると、エラーが発生しますError running Debug: Unable to open debugger port (192.168.111.1:8000): java.net.ConnectException "Connection refused"。さまざまな構成を変更することからすべてを試しましたが、うまくいきません。何か不足していますか?

ここに画像の説明を入力

4

8 に答える 8

9

はいつでもDockerfile次のように更新できます: -

FROM tomcat:8-jre8
MAINTAINER me

ADD target/app.war /usr/local/tomcat/webapps/app.war

ENV JPDA_ADDRESS="8000"
ENV JPDA_TRANSPORT="dt_socket"

EXPOSE 8080 8000
ENTRYPOINT ["catalina.sh", "jpda", "run"]

これは、docker ファイルがデフォルトでデバッグをオンにしていることを意味しますが、これはおそらく実稼働環境には適していません。

于 2016-11-25T12:00:56.500 に答える