我正在使用 Docker 设置 RubyMine 调试器,但我相信我在匹配端口方面遇到问题,并且找不到彻底解释“ruby 矿中的配置表单所要求的内容以及如何查找相关信息”的文档表单输入字段”我能找到的只是一般信息。
当我单击调试器按钮时,我收到了许多错误消息,甚至崩溃了。我已经尝试了比我发布的更多的内容,但我从未把它写下来。这就是我现在所处的位置
我已关注https://confluence.jetbrains.com/display/RUBYDEV/How+to+setup+and+run+ruby+remote+debug+session
我已将端口添加到 docker-compose.yml 文件中。 远程 Ruby SDK 和 Gem 的设置配置。 设置 Ruby 远程调试配置。 我尝试着解决每一个错误,但随着我的前进,我得到了更多。 这个应用程序使用 docker-compose,除了我为获取此调试器设置而进行的所有阅读之外,我根本不熟悉它
docker-compose.yml 文件
app:
build: wffffffe_api
dockerfile: Dockerfile-development
command: rails server --port 3000 --binding 0.0.0.0
stdin_open: true
tty: true
ports:
- "3000:3000"
- "1234:1234"
- "26162:26162"
volumes:
- './wfffffe_api:/var/www/weffffffe_api'
- './dotfiles/.vimrc-basic:/root/.vimrc'
调试器配置
Remote host: 0.0.0.0
Remote port: 3000
Remote root folder: /var/www/wffffffe_api
local port: 26162
local root folder: /Users/josh/Work/wffffffe_api
我尝试过这样做
docker-compose exec app rdebug-ide --host 0.0.0.0 --port 3000 --dispatcher-port 26162 -- bin/rails server
如果 docker 容器已经在运行,我会得到: DebugThread 循环中的致命异常: 地址已在使用 - “0.0.0.0”端口 3000 的“bind(2)”
如果 docker 容器尚未运行,我会得到: 快速调试器(ruby-debug-ide 0.6.1、debase 0.2.2、支持文件过滤)监听 0.0.0.0:3000
然后我做docker-compose up --build -d
错误:对于应用程序无法启动服务应用程序:b'驱动程序在端点work_app_1上编程外部连接失败(1e830daaecd39fab784b817a03893b592635542a8dfe3de69859c0ba7d39b483):启动用户态代理时出错:绑定(bind)0.0.0.0:3000失败:端口已分配'
我需要运行两个单独的服务器吗?
最佳答案
您的问题是您正在尝试在端口 3000 上进行调试,该端口已被您的 Rails 应用程序绑定(bind)。
rdebug-ide 的 --port
指定 RubyMine 将用于其调试协议(protocol)的端口。
当您执行 rails server --port 3000 --binding 0.0.0.0
时,您将端口 3000 绑定(bind)为您的 Rails 应用程序(而不是调试端口)。
将远程端口调试更改为 1234(您已在 docker-compose.yml 中公开),它应该可以工作。
总而言之,您的命令应如下所示:
docker-compose exec app rdebug-ide --host 0.0.0.0 --port 1234 --dispatcher-port 26162 -- bin/rails server --port 3000 --binding 0.0.0.0
关于ruby-on-rails - 让 RubyMine 调试器与 Docker 一起使用的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54610211/