debug-spring-boot im Andockfenster
Aus irgendeinem Grund habe ich Probleme mit der Verbindung " remote-debug-auf eine spring-boot-Anwendung läuft innerhalb Andockfenster. Starte ich die java-app mit:
java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n -jar app.jar
Für Andockfenster ich setze diese ports auf docker-compose:
ports:
- "8080:8080"
- "8000:8000"
Jedoch der debugger ist nicht in der Lage, eine Verbindung auf port 8000. Es funktioniert wenn ich den server lokal aber nicht im Andockfenster. Irgendeine Idee warum?
Docker ps:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0d17e6851807 pocmanager_manager:latest "/bin/sh -c 'java -D 3 seconds ago Up 2 seconds 0.0.0.0:8000->8000/tcp, 0.0.0.0:8080->8080/tcp pocmanager_manager_1
35ed2e2c32bc redis:latest "/entrypoint.sh redi 14 seconds ago Up 13 seconds 0.0.0.0:6379->6379/tcp pocmanager_redis_1
- Was verwenden Sie als Host für den debugger. Wenn Sie habe nur versucht, mit localhost müssen Sie versuchen, mit 127.0.0.1. Dies ist,wenn Ihre docker-container auf der gleichen Maschine laufen Ihre eclise. Wenn Sie gehostet haben Ihre container auf einer VMBox dann müssen Sie möglicherweise die IP des host.
- Ich verwende intellij, ich versuche die Verbindung zu 192.168.59.103 port 8000. Seine die ip-Adresse des boot2docker Instanz.
- Können Sie uns die Ausgabe von "docker ps"
- Können Sie immer noch Zugriff auf die app auf 8080 mit der selben IP. Sieht alles gut aus, mir atleast von Ihrem docker ps-Ausgabe.
- Ja, die webapp funktioniert
- Hm, vielleicht dieser Artikel helfen irgendwie? ptmccarthy.github.io/2014/07/24/remote-jmx-mit-docker Es beschreibt das gleiche problem, aber mit JMX aktiviert und das problem war, dass JMX hat einen port, der dynamisch zugewiesen werden.
- Danke für den link, aber ich habe versucht, legen Sie die RMI-port, als auch, und es hat nicht funktioniert. Ich bin mir nicht sicher was mache ich falsch/fehlt hier.
- Aus irgendeinem Grund funktionierte es, wenn ich baute das Bild manuell (über das maven-plugin) und dann begann es mit docker compose. Zuvor war ich auch bauen das Bild mit dem Komponieren. Nicht sicher, warum es nicht funktioniert.
Du musst angemeldet sein, um einen Kommentar abzugeben.
ich feststellen, dass im dockerFile mit diesem Befehl nur die Hälfte der Arbeit bedeutet dies, dass nur dann aussetzen, den Anschluss in der Andockfenster, aber nicht außerhalb, in deinem Beispiel das Ergebnis wird wie folgt sein:
Debug arbeitet mit der JAVA_OPTS-und remote-Debuggen, das dockerFile sieht wie folgt aus:
und ausführen dieses Befehls:
Wie Sie sehen können, sollten Sie setzen der debug-port, während das laufen, in meinem Fall(eclipse) 8000
Hi ich Stand vor dem gleichen problem.
Ich habe Folgendes in der entrypoint im Dockerfile:
Nun sieht es wie folgt aus:
Habe ich nicht
Expose
port 8000 im Dockerfile.Hoffe, das hilft.
Ich glaube, der Grund dafür könnte sein, Ihr Virtual Box VM-Konfiguration nicht tunnel der debug-port auf der host-Maschine.
Überprüfen Sie diesen link
https://github.com/boot2docker/boot2docker/blob/master/doc/WORKAROUNDS.md
Im Grunde, in Ihrem Fall, müssen Sie die Eingabeaufforderung, und führen
VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port8000,tcp,,8000,,8000";
Hinweis : Stellen Sie sicher, dass VBoxManage ist in Ihrem PFAD