How to debug an application running in Docker with IntelliJ?

Somaiah Kumbera picture Somaiah Kumbera · Dec 8, 2015 · Viewed 25.8k times · Source

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

Answer

Somaiah Kumbera picture Somaiah Kumbera · Dec 8, 2015

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