Пассажир пропускает жемчужину развития в производственной среде - PullRequest
2 голосов
/ 01 июня 2011

У меня на рабочем сервере странное поведение: я развертываю приложение Rails 3 через Capistrano на производственном сервере.Сценарий Capistrano перезапускает пассажира в конце развертывания.Когда я открываю приложение, я вижу сообщение об ошибке пассажира:

Could not find autotest-fsevent-0.2.4 in any of the sources
(Bundler::GemNotFound)

Конечно, autotest-fsevent не установлен в моей производственной среде (и даже не может быть установлен в Ubuntu ...)

Среда настроена на виртуальном хосте apache:

<VirtualHost *>
  PassengerMinInstances 1

  ServerName test.myapp.de
  DocumentRoot /var/www/myapp/current/public

  RailsEnv production
  RackEnv production

  <Directory /var/www/myapp/current/public/>
    Options -Indexes
    AllowOverride None
    Order deny,allow
    Deny from none
    Allow from all
    AddOutputFilterbyType DEFLATE text/html
    FileEtag none
  </Directory>

  LogLevel warn
  ErrorLog /var/www/myapp/shared/log/error.log
  CustomLog /var/www/myapp/shared/log/access.log combined

</VirtualHost>

Вот мой Gemfile:

source 'http://rubygems.org'

gem 'rails', '3.0.6'
gem 'jquery-rails'

gem 'mysql'
gem 'simple-navigation'
gem 'geokit'
gem 'geokit-rails3', :git => "git://github.com/loosecubes/geokit-rails3.git"
gem 'validates_timeliness', '~> 3.0.2'
gem 'delocalize'
gem 'prawn'

group :development do
gem 'rspec-rails', '2.5.0'
gem 'faker', '0.3.1'
#gem 'ruby-debug19'
gem 'ruby-debug'
gem 'autotest', '4.4.6'
gem 'autotest-rails-pure', '4.1.2'
gem 'autotest-fsevent', '0.2.4'
gem 'autotest-growl', '0.2.9'
end

group :test do
  gem 'rspec', '2.5.0'
  gem 'rcov'
  gem 'webrat', '0.7.1'
  gem 'factory_girl_rails', '1.0'
end

Почему пассажир (или сборщик) считает, что ему нужны ВСЕ драгоценные камни, а не только драгоценные камнидля производственной среды?

Спасибо за помощь!

Ответы [ 2 ]

4 голосов
/ 01 июня 2011

Используете ли вы рецепты рецепта capistrano?

Убедитесь, что это в вашем config/deploy.rb

require 'bundler/capistrano'

В основном это вызовет пакет с опцией --without development test, которая должнаустановить добычу драгоценных камней.Если вы просто делаете обычный bundle, он установит попытку установить гемы для всех сред.

0 голосов
/ 01 июня 2011

Возможно, ваша переменная окружения RAILS_ENV либо не определена, либо установлена ​​непреднамеренно на development, что может привести к загрузке неправильного набора драгоценных камней. Возможно, вы захотите покопаться в вашем deploy.rb скрипте, чтобы убедиться, что установлена ​​правильная среда.

У вас должно быть что-то подобное в deploy.rb:

task :production do
  # ...

  set :rails_env, 'production'

  # ...
end

Вы должны быть в состоянии убедиться, что это установлено правильно, выполнив это:

cap production shell
cap> echo $RAILS_ENV
** [out :: myserver] production
...