I have a Jetty application running in docker. I would like to debug this application using my local IntelliJ. I am on v 14.1, so I have installed the Docker Integration plugin.
Under Clouds, I am using the default values that showed up when I click on the '+'. IntelliJ docs say this should be OK. Here the
API URL: http://127.0.0.1:2376 Certificates folder: <empty>
I'm not sure what these are used for, so I dont know if these values are right.
Under Run/Debug configurations, I am using Docker Deployment, and the following values:
Deployment: Docker Image Image ID: The docker image ID Container name: The name of the container
When I try to run this, I get javax.ws.rs.ProcessingException: org.apache.http.conn.HttpHostConnectException: Connect to http://127.0.0.1:2376 [/127.0.0.1] failed: Connection refused
Obviously the API URL value I am using is incorrect. Any suggestions on what that value should be?
My debugging options are:
-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n -Djava.compiler=NONE
Run the program in debug modeClick the Run icon in the gutter, then select Modify Run Configuration. Enter arguments in the Program arguments field. Click the Run button near the main method. From the menu, select Debug.
The Docker extension provides a docker debug configuration provider that manages how VS Code will launch an application and/or attach a debugger to the application in a running Docker container.
Sheesh Never mind. I didnt really need the Docker Integration plugin. Seems like that is more for deployment and management of Docker directly through Intellij than for debugging.
To debug my jetty app running inside my docker container, I simply remote debugged:
Run | Edit configurations | + | Remote
The command line args were already OK since I used the default remote debugging options. I only needed to change the Host settings. Here I used the hostname I had set within the docker container
In Java 8 the JDK supports a JAVA_TOOL_OPTIONS environment variable so to enable the debugger for any Java application you can add the following parameters to your docker run
command:
-p 8000:8000 -e "JAVA_TOOL_OPTIONS=\"-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n\""
Then start a remote debug session connecting to localhost:8000.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With