ruby-on-rails - 让 RubyMine 调试器与 Docker 一起使用的问题

标签 ruby-on-rails docker-compose rubymine

enter image description here我正在使用 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/

相关文章:

docker - 容器内的docker pull图像因超时而失败

docker - 由 docker-compose 创建的网络不尊重 Docker 的子网设置

ruby-on-rails - benchmark.rb 中的实时时间可以小于其他时间吗?

ruby-on-rails - 是否有 "Rails Way"可以将 Twitter Bootstrap 主题折叠到 Rails 3 应用程序中?

node.js - 无法在 docker compose 服务之间连接到 Postgres 数据库

localhost - Rubymine(Jetbrains) 本地服务器。我可以让它从本地主机根运行吗?

ruby-on-rails - RubyMine 停止识别 html.erb

RubyMine 无法切换 SDK。未找到 RVM SDK '2.2.0@rails-devise'

ruby-on-rails - rails : validates_uniqueness_of with conditions not working as expected

ruby-on-rails - 带关联的 Ruby on Rails Activemodel