防止美洲狮在当地跑步(红宝石在铁轨上)

时间:2016-04-15 12:29:59

标签: ruby-on-rails puma

我最近开始使用Puma作为我的生产服务器使用nginx,但是,当我现在尝试在本地运行我的应用程序时,它尝试使用我的所有生产设置运行Puma并失败。如何防止Puma在本地运行?

AFAIK我所做的全部都是将我的宝石文件添加到我的宝石文件中,所以我不知道它是如何访问我的服务器配置的(我在这方面不太了解)。我在我的制作小组中有这个:

group :production do
  gem 'pg'
  gem 'rails_12factor'
  gem 'puma'
end

错误:

→ rails s
=> Booting Puma
=> Rails 4.2.6 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[8917] Puma starting in cluster mode...
[8917] * Version 3.4.0 (ruby 2.0.0-p645), codename: Owl Bowl Brawl
[8917] * Min threads: 1, max threads: 6
[8917] * Environment: development
[8917] * Process workers: 1
[8917] * Phased restart available
[8917] * Listening on tcp://localhost:3000
[8917] Use Ctrl-C to stop
/rbenv/versions/2.0.0-p645/lib/ruby/gems/2.0.0/gems/puma-3.4.0/lib/puma/runner.rb:103:in `reopen': No such file or directory - /Users/me/mll/shared/log/puma.stdout.log (Errno::ENOENT)

此外,虽然现在对我来说不那么重要,但在本地运行Puma对我有利吗?如果是的话,有关我如何做到这一点的任何提示/资源?

3 个答案:

答案 0 :(得分:3)

您需要将puma放入生产组。像这样:

group :production do
   gem 'puma'
end

这样puma只会用于生产而不是开发。

更新

确保您的bin/rails文件如下所示:

#!/usr/bin/env ruby
APP_PATH = File.expand_path('../../config/application', __FILE__)
require_relative '../config/boot'
require 'rails/commands'

答案 1 :(得分:2)

与本完全相同的问题。我尝试在开发和测试时在本地使用web brick,并在生产中使用puma。

Gem文件完美定义为puma只位于生产组中。检查'bin / rails'和'config / application',与@RăzvanCiocănel建议相同。仍在本地启动'puma'。

最后,看看'捆绑安装'宝石列表,'puma'与其他'生产'宝石一起安装。运行'bundle install --without production',现在本地将使用web brick作为ROR默认启动。

我想只要puma是捆绑安装,它将被加载到本地,除非你配置一些东西强制它。因此解决方案可能是在开发和测试中删除bundle列表中的gem。

答案 2 :(得分:0)

Rails 3项目(它的持续时间超过预期......) 我在gemfile的制作组中从独角兽变成了彪马。

group :production do
  gem 'puma'
end

然后当我尝试运行测试或开发服务器(本应该很薄)时,我得到了:

C:\Rails Projects\Rep>rails s
Could not find gem 'puma x86-mingw32' in any of the gem sources listed in your Gemfile or available on this machine.
Run `bundle install` to install missing gems.

稍微探讨了一下(包括发现这个问题)后,我放弃了,决定继续使用开发中的美洲狮。我运行捆绑安装并尝试运行服务器和瞧,瘦了再次工作。

然后我意识到我仍然只在生产组中使用它 - 我回顾了捆绑安装并且没有安装,puma仍然没有安装。但是现在自从编辑gemfile以来已经运行了bundle install,一切都再次运行。

C:\Rails Projects\Rep>rails s
=> Booting Thin
=> Rails 3.2.22.2 application starting in development on http://0.0.0.0:3000

所以我猜错了宝石'错误我不是因为它试图实际运行puma而是由于未尝试的gemfile而导致某种捆绑器生成错误?只是把它放在一边,以防止在类似情况下最终到达这里的人加快速度。