Aus irgendeinem Grund habe ich Probleme beim Verbinden von Remote-Debug mit einer Spring-Boot-App, die im Docker läuft. Ich starte die Java App mit:
%Vor%Für docker stelle ich diese Ports auf docker-compose:
%Vor%Der Debugger kann jedoch keine Verbindung zu Port 8000 herstellen. Er funktioniert, wenn ich den Server lokal, aber nicht innerhalb von docker ausführe. Irgendeine Idee warum?
Docker ps-Ausgabe:
%Vor%ich muss erkennen, dass in der dockerFile der Expose-Befehl nur die Hälfte der Arbeit tun, das bedeutet, dass nur den Port im Docker freilegen, aber nicht außerhalb, in Ihrem Beispiel wird das Ergebnis so aussehen:
Debug funktioniert mit dem JAVA_OPTS und remote debug, die dockerFile sieht so aus:
%Vor%und Ausführen dieses Befehls:
%Vor%Wie Sie sehen können, sollten Sie den Debug-Port während des Laufs in meinem Fall (eclipse) 8000
verfügbar machenHi Ich hatte das gleiche Problem.
Ich habe Folgendes zum Einstiegspunkt in der Dockerfile hinzugefügt:
"- agentlib: jdwp = Transport = dt_socket, Adresse = 8000, Server = y, Aussetzung = n"
Jetzt sieht es so aus:
%Vor% Ich habe nicht Expose
port 8000 in der Dockerfile.
Hoffe, das hilft.
Ich denke, der Grund dafür könnte sein, dass Ihre Virtual Box-VM-Konfiguration den Debug-Port nicht auf den Host-Computer tunnelt.
Überprüfen Sie diesen Link Ссылка
Grundsätzlich müssen Sie in Ihrem Fall die Eingabeaufforderung aufrufen und
ausführen VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port8000,tcp,,8000,,8000";
Hinweis: Stellen Sie sicher, dass sich VBoxManage in Ihrem PFAD befindet
Tags und Links java spring docker spring-boot