Puma + Rackup + Sinatra:使用Rackup时忽略配置文件

时间:2018-10-25 12:48:12

标签: ruby sinatra rubymine puma rackup

在Rubymine和Rackup的背景下,我正在与puma斗争。 我创建了一个绑定usig ssl的小应用程序,并从/config/puma.rb或/config/puma/production.rb

获取其参数

如果我以 puma或Puma -C /config/puma.rb或puma -E生产

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 /端口提供了命令行参数,并且该puma并没有真正读取其配置文件。

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

  

机架-E生产   Puma以单模式启动...   *版本3.12.0(红宝石2.4.5-p335),代号:睡衣中的骆驼   *最小线程数:0,最大线程数:16   *环境:生产   *聆听tcp://0.0.0.0:9292

=>错误的IP,端口和没有SSL!

  • 在有环境和无环境的情况下我都尝试过=>无法读取SSL 绑定
  • 我尝试在config.ru中使用-O C = [path]转发-C参数 彪马命令=>不阅读
  • 我试图避免所有这些,并在sinatra中做到了,但这太晚了 在“启动”中

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

最后,我的期望是: 我或rubymine 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}"

config.ru

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

需要“ ruby​​gems”

需要“ ./app”

运行应用

1 个答案:

答案 0 :(得分:0)

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

只需在参数中添加-C puma.rb