Puma + Rackup + Sinatra: файл конфигурации игнорируется при использовании rackup

Я борюсь с пумой в контексте Rubymine и Rackup. Я создал небольшое приложение, которое связывает 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

К сожалению, RubyMine IDE для приложений sinatra использует жестко запрограммированную команду rackup для запуска сервера, кроме того, предоставляет параметры командной строки для IP/ порта, и с этой пумой на самом деле не читает свой файл конфигурации.

В консоли постоянно игнорируется файл конфигурации:

rackup -E производство Puma запускается в одиночном режиме... * Версия 3.12.0 (ruby 2.4.5-p335), кодовое имя: Llamas in Pyjamas * Мин. потоков: 0, Макс. потоков: 16 * Среда: Производство * Прослушивание tcp: //0.0.0.0:9292

=> неправильный IP, порт и нет SSL!

  • Я пытался это с и без среды => не читая привязку ssl
  • Я попытался перенаправить параметр -C с -O C=[путь] в config.ru в команду puma => не читает
  • Я пытался избежать всего этого и сделать это в Синатре, но это поздно в "загрузке"

Итак, как запустить приложение sinatra с Rubymine, нажав кнопку воспроизведения, которая запускает рэкап? Мне нужно выполнить файл конфигурации, потому что моя привязка ssl определена... Мне нужно использовать rackup, потому что rubymine форсирует его. Мне нужен rubymine для отладки

В конце концов все мои ожидания были бы такими: я или rubymine IDE вызываем стойку, он читает его 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

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

требовать 'rubygems'

требует './app'

запустить приложение

1 ответ

Вы можете создать конфигурацию Run/Debug и добавить параметры в конфигурацию стойки, которую выполняет RubyMine (обязательно добавьте ее в конфигурацию стойки, а не в Ruby): https://www.jetbrains.com/help/ruby/creating-and-editing-run-debug-configurations.html

Просто добавь -C puma.rb к параметрам.

Другие вопросы по тегам