web-dev-qa-db-fra.com

Comment puis-je faire démarrer 'puma' automatiquement lorsque j'exécute `Rails server` (comme Thin le fait)

Normalement, lorsque vous exécutez Rails server ça démarre Webrick. Si vous installez la gemme "mince", alors "mince" commence à la place. Je voudrais faire la même chose avec le serveur 'puma'.

Je vois que la commande start dans railties (lib/Rails/commandes) appelle super, mais je ne trouve pas quelles sont les différentes options pour 'super'. J'ai également passé en revue de nombreuses références à Rails dans 'thin').

J'ai trouvé une entrée du journal des modifications intitulée "Ajout d'un support léger au script/serveur. # 488 [Bob Klosinski]" à partir d'octobre 2008, mais cette zone de code a considérablement changé depuis cette validation (a93ea88c0623b4f65af98c0eb55924c335bb3ac1).

Si quelqu'un pouvait me diriger vers la bonne section de code, ce serait très utile.

29
Matt Scilipoti

Après quelques recherches, j'ai trouvé cette réponse: https://stackoverflow.com/a/14911994/604526

Pour faire de Puma la valeur par défaut, collez ce code dans le script/Rails ci-dessus nécessite "Rails/commandes":

require 'rack/handler'
Rack::Handler::WEBrick = Rack::Handler.get(:puma)

Puma est désormais le serveur par défaut si vous utilisez Rails s

Rails s
=> Booting Puma
=> Rails 3.2.12 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Connecting to database specified by database.yml
Puma 1.6.3 starting...
* Min threads: 0, max threads: 16
* Environment: development
* Listening on tcp://0.0.0.0:3000

Rails 4

Avec Rails 4 vous devez simplement ajouter le puma-gem au Gemfile. (Testé avec Rails 4.0.2 et Puma 2.6.0)

58
Simon Woker

Au moins dans Rails 4, il vous suffit d'ajouter les éléments suivants à votre Gemfile

gem 'puma'

puis exécutez "bundle", puis lorsque vous exécutez "serveur Rails" et Puma sera utilisé.

18
Ryan Sandridge

Cela fonctionne pour moi. Ruby 2.0.0 Rails 3.2.13 Puma 1.6.3

Rails s puma
10
user2110836

documentation Puma suggère que vous ajoutiez #\ -s puma à ton config.ru.

2
RocketR