2014-01-23 48 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模板作为操作方法