我有一個小型的網絡應用程序,它使用了一堆寶石。其中一些僅用於test
和development
環境。現在,當我嘗試使用以下命令在生產服務器上啓動獨角獸時,它失敗。bundler錯誤地試圖在生產中安裝「開發」和「測試」組寶石
unicorn_rails -E production -D -c config/unicorn.rb
我在日誌文件中看到錯誤是:
Refreshing Gem list
Could not find gem 'spork (>= 0.9.0.rc2, runtime)' in any of the gem sources listed in your Gemfile.
Try running `bundle install`.
我已經粘貼下面我的Gemfile:
source 'http://rubygems.org'
gem 'rails', '3.0.1'
gem 'unicorn'
gem 'mongoid', '>= 2.0.0.beta.19'
gem 'devise'
gem 'cancan'
gem 'haml', '>= 3.0.0'
gem 'bson'
gem 'bson_ext'
gem 'formtastic'
gem 'bluecloth'
group :production do
gem 'capistrano'
end
group :development do
gem 'haml-rails'
gem 'hpricot', '0.8.2'
gem 'ruby_parser', '2.0.5'
gem 'less'
gem 'rspec-rails', '>= 2.0.1'
end
group :development,:test do
gem 'spork', '>=0.9.0.rc2'
gem 'mongoid-rspec'
end
group :test do
gem 'factory_girl_rails'
gem 'autotest'
gem 'cucumber-rails'
gem 'cucumber'
gem 'capybara'
gem 'shoulda'
gem 'database_cleaner'
gem 'test_notifier'
gem 'rspec', '2.0.1'
gem 'launchy'
end
捆綁器應該檢測合適的環境,而忽略其他寶石,對吧?現在,我刪除了所有不在服務器上的默認組中的行,以使其正常工作,但這是一個醜陋的黑客行爲。
Capistrano的生產似乎deploy.rb不正確的? – 2013-05-30 08:52:05