Nuevo en VSCode, intenté depurar una aplicación Rails existente que se ejecuta dentro de Docker (iniciada a través de docker compose)
Seguí las instrucciones en https://github.com/rubyide/vscode-ruby (instalé la extensión gems +, inicie la configuración).
Puedo iniciar puma y ver que se agregan puntos de interrupción
some-app_1 | 1: <breakpointAdded no="3" location="...../some-app/app/controllers/hello_worlds_controller.rb:4"/>Pero cuando presiono el controlador anterior con una solicitud, el punto de interrupción no se activa (la solicitud simplemente pasa).
configuración de lanzamiento:
{ "version": "0.2.0", "configurations": [ { "name": "some-App", "type": "Ruby", "request": "attach", "remoteHost": "127.0.0.1", "remotePort": "1234", "remoteWorkspaceRoot": "${workspaceRoot}", "cwd": "${workspaceRoot}", } ] }No hay nada en el canal de salida de Ruby ni en los registros del contenedor.
Supongo que estoy haciendo algo mal? ¿O falta algo?
Parece que su remoteWorkspaceRoot está apuntando a su máquina local, el depurador necesita saber qué archivo debe mirar para romper dentro del contenedor acoplable
Por ejemplo, si dentro de su contenedor docker, su proyecto está en "/app", debe cambiar su variable remoteWorkspaceRoot a "/app"
En la consola deberías ver
some-app_1 | 1: <breakpointAdded no="3" location="your-docker-path-to-the-project/some-app/app/controllers/hello_worlds_controller.rb:4"/>en vez de
some-app_1 | 1: <breakpointAdded no="3" location="...../some-app/app/controllers/hello_worlds_controller.rb:4"/>y eso debería funcionar bien si no está usando Windows (compatibilidad con backlashes)