0

我在 Rubymine 和 Rackup 的上下文中与 puma 作斗争。我创建了一个绑定 usig ssl 的小应用程序,并从 /config/puma.rb 或 /config/puma/production.rb 获取其参数

如果我用 puma 或 Puma -C /config/puma.rb 或 puma -E production 启动它,那效果很好

puma starting in single mode...
* Version 3.12.0 (ruby 2.4.5-p335), codename: Llamas in Pajamas
* Min threads: 0, max threads: 16
* Environment: development
* Listening on ssl://127.0.0.1:9001?cert=./keys/s3l.cer&key=./keys/s3l.key&verify_mode=peer&ca=./keys/sso_ca.crt
Use Ctrl-C to stop

不幸的是,用于 sinatra 应用程序的 RubyMine IDE 使用硬编码的 rackup 命令来启动服务器,此外还为 IP/Port 提供命令行参数,并且这个 puma 并没有真正读取它的配置文件。

在控制台中,它始终忽略配置文件:

rackup -E production Puma 从单一模式开始... * 版本 3.12.0 (ruby 2.4.5-p335),代号:Llamas in Pajamas * 最小线程:0,最大线程:16 * 环境:生产 * 监听 tcp: //0.0.0.0:9292

=> 错误的 ip、端口和没有 ssl!

  • 我尝试使用和不使用环境 => 不读取 ssl 绑定
  • 我试图将 config.ru 中带有 -OC=[path] 的 -C 参数转发到 puma 命令 => 不读取
  • 我试图避免这一切并在 sinatra 中做到这一点,但这在“启动”中已经很晚了

那么如何通过按下触发 rackup 的播放按钮来使用 Rubymine 运行 sinatra 应用程序?我需要执行配置文件,因为定义了我的 ssl 绑定...我需要使用 rackup 因为 ruby​​mine 强制它。我需要 ruby​​mine 进行调试

最后,我的所有期望都是:我或 ruby​​mine IDE 调用 rackup,它读取他的 config.ru,它调用 puma 并且 puma 正在寻找它的配置文件,依赖于 -E 但 puma 没有寻找它的文件

pumar.rb

   cert= "./keys/s3l.cer"
   key = "./keys/s3l.key"
   ca=  "./keys/sso_ca.crt"
   verify_mode= "peer"
bind "ssl://127.0.0.1:9001?cert=#{cert}&key=#{key}&verify_mode=#{verify_mode}&ca=#{ca}"

配置.ru

哈希\ -s puma -O -C=./config/pumar.rb

需要“红宝石”

需要'./app'

运行应用

4

1 回答 1

0

您可以创建运行/调试配置并将参数添加到 RubyMine 执行的机架配置中(确保将其添加到机架配置中,而不是 Ruby):https ://www.jetbrains.com/help/ruby/creating-and-编辑-运行-调试-configurations.html

只需添加-C puma.rb参数即可。

于 2018-10-31T18:02:54.013 回答