2015-05-04 4 views
1

Работа на Cron Работает на моем компьютере. Но когда я развертываю его на сервере, используя capistrano. Файл cron.log показывает, что он ищет эту версию, которой нет на сервере, как я могу решить эту проблему. Есть идеи...?Gemfile не найден с использованием работы Cron с Capistrano 3 и всякий раз, когда драгоценный камень

/home/deployer/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/bundler-1.7.2/lib/bundler/definition.rb:22:in `build': /home/deployer/apps/production_app/releases/20140906112257/Gemfile not found (Bundler::GemfileNotFound) 
    from 

Когда я запустить кронтаб -e команду его шоу в нужный выпуск

# Begin Whenever generated tasks for: production_app 
0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58 * * * * /bin/bash -l -c 'cd /home/deployer/apps/production_app/releases/20150504102922 && bin/rails runner -e production '\''Vehicle.check_not_responding'\'' >> /home/deployer/apps/production_app/releases/20150504102922/log/cron.log 2>&1' 

* * * * * /bin/bash -l -c 'cd /home/deployer/apps/production_app/releases/20150504102922 && bin/rails runner -e production '\''SmsDetail.send_sms'\'' >> /home/deployer/apps/production_app/releases/20150504102922/log/cron.log 2>&1' 

# End Whenever generated tasks for: production_app 

Как я могу исправить эту проблему ...?

ответ

1

У меня была такая же проблема некоторое время назад. оказывается, что переменная BUNDLE_GEMFILE не определена, когда cron пытается выполнить задачи. так что вам нужно будет следующее в вашем schedule.rb:

env :BUNDLE_GEMFILE, ENV["/#{path}/Gemfile"] 

или

env :BUNDLE_GEMFILE, ENV["/home/deployer/apps/production_app/current/Gemfile"] 

Позвольте мне знать, что помогает в вашем случае.

+0

Спасибо. Это работает – TayyabZahid