我正在使用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'與服務器上的相同,但我仍然得到相同的錯誤。
我用盡了想法,任何人都知道什麼會導致這種情況?
乾杯。
你知道嗎? – eggie5
我沒有,但我從頭開始使用https://github.com/TalkingQuickly/capistrano-3-rails-template,它以某種方式結束了工作。 –