我有一个码头化的RoR应用程序,我正试图使用rdebug ide和vscode在调试模式下运行它。已经添加了宝石ruby调试ide和降级。我在vscode上安装了ruby扩展,并创建了启动配置:
"version": "0.2.0",
"configurations": [
{
"name": "Attach to Docker",
"type": "Ruby",
"request": "attach",
"remoteHost": "0.0.0.0",
"remotePort": "9000",
"remoteWorkspaceRoot": "/app",
"cwd": "${workspaceRoot}",
"showDebuggerOutput": true,
}
]
在docker-compose.override上,我添加了命令:
command: bundle exec rdebug-ide --debug --host 0.0.0.0 --port 9000 -- rails s --host 0.0.0.0 -p 3000
当我运行docker-compose up backend
时,我可以看到调试服务器正在运行:
Fast Debugger (ruby-debug-ide 0.7.2, debase 0.2.4.1, file filtering is supported) listens on 0.0.0.0:9000
当我在VSCODE上启动调试任务时,就会出现问题。我得到这个错误:
Uncaught exception: cannot load such file -- /app/rails
Dockerfile上的入口点和工作目录:
WORKDIR /app
ENTRYPOINT ["bundle", "exec"]
CMD ["rails", "server", "--binding=0.0.0.0"]
如果我用docker-compose up backend
正常运行应用程序并执行docker container ls
,我可以看到启动命令:
bundle exec rails server --binding=0.0.0.0
在我的情况下,rails
的路径错误,请尝试在command
:中将其更改为bin/rails
command: bundle exec rdebug-ide --debug --host 0.0.0.0 --port 9000 -- bin/rails s --host 0.0.0.0 -p 3000