VSCode、Docker、Rails调试

VSCode, Docker, Rails debugging

VSCode 的新手我尝试调试在 Docker 中运行的现有 Rails 应用程序(通过 docker compose 启动)

我按照 https://github.com/rubyide/vscode-ruby 上的说明进行操作(安装了 gems + 扩展,启动配置)。

我可以启动 puma 并看到添加的断点

some-app_1  | 1: <breakpointAdded no="3" location="...../some-app/app/controllers/hello_worlds_controller.rb:4"/>

但是当我用请求点击上面的控制器时,断点没有启动(请求只是通过)。

启动配置:

{
    "version": "0.2.0",
    "configurations": [
      {
        "name": "some-App",
        "type": "Ruby",
        "request": "attach",
        "remoteHost": "127.0.0.1",
        "remotePort": "1234",
        "remoteWorkspaceRoot": "${workspaceRoot}",
        "cwd": "${workspaceRoot}",
      }
    ]
  }

Ruby 输出通道或容器日志中没有任何内容。

我假设我做错了什么?或者少了什么?

看起来你的remoteWorkspaceRoot它指向你的本地机器,调试器需要知道他应该观察什么文件来破坏内部docker 容器

例如,如果在您的 docker 容器中,您的项目位于“/app”上,您应该更改 remoteWorkspaceRoot 变量为“/app”

在控制台中您应该会看到

some-app_1  | 1: <breakpointAdded no="3" location="your-docker-path-to-the-project/some-app/app/controllers/hello_worlds_controller.rb:4"/>

而不是

some-app_1  | 1: <breakpointAdded no="3" location="...../some-app/app/controllers/hello_worlds_controller.rb:4"/>

如果您不使用 Windows(反斜线兼容性)

,那应该可以正常工作