5

Ich versuche, Debugger in Rails-Anwendung, die docker.Our Anwendungsserver führt in Ubuntu-Terminal mit verwendet: Docker-komponieren. Ich habe den Debugger nicht gefunden. Wir können rails s - debugger nicht verwenden. Wie kann man unsere Rails-Anwendung debuggen, die in Docker integriert ist. Wenn ich den Debugger in der Anwendungsdatei verwalte, werden wir in der Konsole ausgegeben: {***** Debugger angefordert, war aber nicht verfügbar (stelle sicher, dass ruby-debug in Gemfile/als Juwel installiert ist): Starte den Server mit --debugger zum Aktivieren ***** }Wie zu debuggen Rails-Anwendung, die in Docker-Container ausgeführt wird

Antwort

5

Ich weiß nicht Ruby oder Schienen, aber das ist allgemein "Problem" mit docker-compose up. Die Codeausführung wird in diesem Fall nicht in einem laufenden Container angehalten und schlägt stattdessen fehl, wenn Sie einen Punkt für den Debugger treffen. Sie müssen stattdessen den Dienst in den Vordergrund laufen:

docker-compose stop <my-service-to-debug> 
docker-compose run --service-ports <my-service-to-debug> 

Diese Sie in den Debugger fallen wird, sobald Ihr Code diesen Punkt trifft. Der wichtige Teil hier ist das --service-ports-Flag, das sicherstellt, dass die gleichen Ports ausgesetzt sind, wie Sie in Ihrer Datei docker-compose.yml angegeben haben. Sie können auch das Flag --no-deps für den Fall verwenden, dass keine verknüpften Container neu gestartet werden sollen.