2014-01-23 45 views
2

我正在使用Capistrano v3將一個Rails 4應用程序部署到使用獨角獸與nginx的VPS。Capistrano v3任務未能啓動具有錯誤「eval:捆綁包未找到」的獨角獸服務器

capistrano最近的官方文件,我設法建立有關的一切部署本身:

我用的寶石「Capistrano的」,「Capistrano的打捆」,「Capistrano的護欄」和「Capistrano的-rvm',當我做cap production deploy一切似乎沒有任何錯誤消息(儲存庫從github拉,並在服務器上覆制,資產預編譯等)工作。

在這一點上,如果我通過SSH連接到服務器並鍵入/etc/init.d/unicorn start服務器將按預期啓動,爲我的Rails應用程序提供服務。

不過,我創建了一個任務與Capistrano的V3看起來像自動完成:

namespace :unicorn do 

    desc 'Start Unicorn' 
    task :start do 
    on roles(:app) do 
     within current_path do 
     execute "/etc/init.d/unicorn start" 
     end 
    end 
    end 

    desc 'Stop Unicorn' 
    task :stop do 
    on roles(:app) do 
     within current_path do 
     execute "/etc/init.d/unicorn stop" 
     end 
    end 
    end 

end 

但每當我試圖capistrano deploy unicorn:start我收到以下錯誤:什麼是更奇怪的是,

/etc/init.d/unicorn: 1: eval: bundle: not found 
cap aborted! 
/etc/init.d/unicorn start stdout: Nothing written 
/etc/init.d/unicorn start stderr: Nothing written 

當我手動啓動獨角獸,然後做cap production unicorn:stop它無縫工作。

我懷疑通過ssh登錄時可用的環境變量的一些差異,所以我配置'rvm_bin_path','路徑'和'gem_path'與服務器上的相同,但我仍然得到相同的錯誤。

我用盡了想法,任何人都知道什麼會導致這種情況?

乾杯。

+1

你知道嗎? – eggie5

+0

我沒有,但我從頭開始使用https://github.com/TalkingQuickly/capistrano-3-rails-template,它以某種方式結束了工作。 –

回答

0

當在部署服務器上使用rvm時rvm1-capistrano3可以節省您的時間。你可以使用this模板作爲操作方法