我正在使用capistrano v3使用nginx的Unicorn部署Rails 4应用程序。
Capistrano最近的正式文档后,我设法设置了与部署本身有关的所有内容:
我使用gems'Capistrano'," Capistrano-Bundler"," Capistrano-Rails"one_answers" Capistrano-RVM",当我做cap production deploy
时,一切似乎都在没有任何错误消息(存储库中)在服务器上,资产预先编译等)。
此时,如果我通过SSH连接到SEVE并键入/etc/init.d/unicorn start
服务器按预期启动,服务于我的Rails App。
但是,我创建了一个与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"," PATH"one_answers" GEM_PATH"与服务器相同,但我仍然会遇到相同的错误。
>我的想法已经用完了,任何人都知道是什么原因?
欢呼。
当在部署服务器RVM1-capistrano上使用RVM时,请为您节省。您可以将此模板用作操作方法