我有Rails(4.0.3 版)应用程序,它使用nginx作为前端服务器将请求分派到实际的Unicorn。在开发应用程序时,我想使用Windows 上的Docker (boot2docker) 来运行应用程序,并使用ruby-debug-ide来远程调试应用程序。
原始设置工作正常(主机上的应用程序答案),直到我替换rails server
为
rdebug-ide --port 1234 --host 0.0.0.0 --dispatcher-port 26162 -- bin/rails server
在 Docker 容器上运行此程序后,我成功连接到远程调试器,因为它在 Docker 容器 bash 上告诉断点是根据我在 RubyMine 上设置的内容添加的,并告诉 Unicorn 服务器现在正在运行。我也添加了 gem unicorn-rails来rails server
为 Unicorn 工作。
现在实际的问题是,当它在调试器中运行时,nginx 似乎找不到独角兽。它只是继续加载浏览器(并使用 curl),直到返回 504(网关超时)。
有趣的独角兽配置包含
app_dir = "/app"
working_directory app_dir
pid "#{app_dir}/tmp/unicorn.pid"
worker_processes 1
listen "/tmp/unicorn.sock", :backlog => 64
我已经按照JetBrains 帮助页面中的描述设置了所有内容。在 Docker 上,我打开了所有必要的端口(调试器为 1234,调度程序为 26162,HTTPS 为 443)。
我已经爬了几个小时的 Internet 和 Stack Overflow 没有任何运气,并且找不到任何可以尝试的东西了。有任何想法吗?