我正在使用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,它以某种方式结束了工作。 –