2015-12-08 6 views
10

Ich habe eine Jetty-Anwendung in Docker ausgeführt. Ich möchte diese Anwendung mit meinem lokalen IntelliJ debuggen. Ich bin auf v 14.1, also habe ich das Docker Integration Plugin installiert.Wie Debuggen einer Anwendung, die in Docker mit IntelliJ ausgeführt wird?

Unter Clouds verwende ich die Standardwerte, die angezeigt werden, wenn ich auf das '+' klicke. IntelliJ Docs sagen, das sollte in Ordnung sein. Hier ist die

Ich bin mir nicht sicher, wofür diese verwendet werden, also weiß ich nicht, ob diese Werte richtig sind.

Under Run/Debug-Konfigurationen, ich bin mit Docker Deployment und die folgenden Werte:

Deployment: Docker Image 
Image ID: The docker image ID 
Container name: The name of the container 

Wenn ich versuche, dies zu laufen, bekomme ich javax.ws.rs.ProcessingException: org.apache. http.conn.HttpHostConnectException: Verbinden mit http://127.0.0.1:2376 [/127.0.0.1] fehlgeschlagen: Verbindung verweigert

Offensichtlich ist der API URL-Wert, den ich verwende, falsch. Irgendwelche Vorschläge, was dieser Wert sein sollte?

Meine Debugging-Optionen sind:

-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n -Djava.compiler=NONE 

Antwort

13

Sheesh Das macht nichts. Ich brauchte das Docker Integration Plugin nicht wirklich. Scheint, als ob das mehr für die Bereitstellung und Verwaltung von Docker direkt über Intellij als für das Debuggen ist.

Zu meiner Anlegestelle App debuggen in meinem Docker Container läuft, habe ich einfach remote debuggt:

Run | Konfigurationen bearbeiten | + | Remote

Die Befehlszeilenargumente waren bereits in Ordnung, da ich die Standard-Remote-Debugging-Optionen verwendet habe. Ich musste nur die Host-Einstellungen ändern. Hier benutzte ich den Hostnamen, den ich im Andock-Container gesetzt hatte

+0

Vielen Dank dafür. Das Debugging über die Docker-Integration funktionierte nicht. Jetzt starte ich einfach meine Docker-Integration-Konfiguration, um den Server zu starten, und starte dann meinen Remote-Debugger zum Debuggen. Funktioniert super. –

+0

@EzekielVictor Können Sie Haltepunkte setzen? –

+0

@JoppeGeluykens sicher. Sie stellen im Grunde nur eine Verbindung zu dem Code her, wie Sie es auf jedem Remote-Server tun würden. Es kommt einfach vor, dass dieser Remote-Server in einem Andock-Container lebt. –