DockerでJettyアプリケーションを実行しています。ローカルIntelliJを使用してこのアプリケーションをデバッグしたいと思います。私はv 14.1にいるので、Docker Integrationプラグインをインストールしました。
クラウドでは、「+」をクリックすると表示されるデフォルト値を使用しています。 IntelliJのドキュメントでは、これで問題ないはずです。ここに
API URL: http://127.0.0.1:2376
Certificates folder: <empty>
これらが何に使われるのか分かりませんので、これらの値が正しいかどうかはわかりません。
[実行/デバッグ構成]で、Docker Deploymentと次の値を使用しています。
Deployment: Docker Image
Image ID: The docker image ID
Container name: The name of the container
これを実行しようとすると、javax.ws.rs.ProcessingException:org.Apache.http.conn.HttpHostConnectException:Connect to http://127.0.0.1:2376 [/127.0.0.1 ]失敗:接続が拒否されました
明らかに、私が使用しているAPI URL値は正しくありません。その価値がどうあるべきかについての提案はありますか?
私のデバッグオプションは次のとおりです。
-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n -Djava.compiler=NONE
Sheesh気にしないで。 Docker Integrationプラグインは本当に必要ありませんでした。デバッグよりも、Intellijを介して直接Dockerを展開および管理する方がそのように思えます。
Dockerコンテナー内で実行されているjettyアプリをデバッグするには、単にリモートデバッグしました。
実行|構成の編集| + |リモート
デフォルトのリモートデバッグオプションを使用したため、コマンドライン引数はすでに問題ありませんでした。ホストの設定を変更するだけで済みました。ここでは、Dockerコンテナ内で設定したホスト名を使用しました
Java 8では、JDKはJava_TOOL_OPTIONS環境変数をサポートするため、任意のJavaアプリケーションでデバッガを有効にするには、次のパラメータをdocker run
コマンド:
-p 8000:8000 -e "Java_TOOL_OPTIONS=\"-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n\""
次に、localhost:8000に接続するリモートデバッグセッションを開始します。
誰かがWindowsマシンで開発を行い、同時にリモートドッカーでアプリを実行/デバッグしたい場合は、ここで私のintellijプラグインを確認できます: https://bojanv55.wordpress.com/2018/08/03/intellij-idea-remote-debug-of-Java-code-inside-docker-container /