5

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

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.