Próbuję uruchomić debugger w aplikacji railsowej, która używa docker. Nasz serwer aplikacji wykonuje się w terminalu Ubuntu za pomocą: docker-compose up. Nie znalazłem sposobu uruchomienia debuggera. Nie możemy używać szyny s --debugger. Jaki jest sposób debugowania naszej aplikacji szynowej zintegrowanej z funkcją dokowania. Kiedy utrzymuję debugger w pliku aplikacji otrzymujemy wyjście w konsoli: {***** Debugger zażądał, ale nie był dostępny (upewnij się, że ruby-debug znajduje się na liście Gemfile/zainstalowane jako gem): Uruchom serwer z opcją --debugger, aby włączyć ***** }Jak debugować aplikację szyny, która działa w kontenerze dokowania
5
A
Odpowiedz
5
Nie znam ruby ani szyn, ale jest to ogólny "problem" z docker-compose up
. W tym przypadku wykonanie kodu nie zatrzyma się w uruchomionym kontenerze i nie powiedzie się, gdy trafi się punkt debuggera. Trzeba uruchomić usługę na pierwszym planie zamiast:
docker-compose stop <my-service-to-debug>
docker-compose run --service-ports <my-service-to-debug>
to spadnie ci do debuggera raz kod uderza tego punktu. Ważną częścią jest tutaj flaga --service-ports
, która zapewnia, że te same porty są odsłonięte, jak określono w pliku docker-compose.yml
. Możesz także użyć flagi --no-deps
na wypadek, gdyby nie było potrzeby restartowania połączonych kontenerów.