繁体   English   中英

Capistrano部署失败并运行rake(rails3 + rvm)

[英]Capistrano deploy fails with rake run (rails3 + rvm)

编辑:这里的问题是我在本地计算机上使用RVM,在服务器上使用rbenv。 强烈不建议这样做,如果要管理多个ruby安装(或升级ruby版本,但不想更改系统),则在所有环境中都使用RVM或rbenv! /编辑

因此,我将从一些历史开始:我正在将rails2网站升级到rails3。 到目前为止,除Capistrano的部署脚本外,大多数事情都可以正常运行。 我当前的设置是:

  • 本地安装的RVM(1.14.1)
  • ruby-1.9.3-p194(设置到项目的文件夹)
  • 作为RVM gem安装的Capistrano v2.12.0(从2.6.0升级,但也不适用于2.6.0)
  • rvm-capistrano(1.2.2),添加到Gemfile中(在线和在线阅读后)
  • 安装在服务器上的rbenv(全局使用ruby 1.9.3p194)

(到目前为止,如果您发现没有任何意义的内容,请告诉我)

部署脚本中没有任何变化,但是当我尝试部署到测试服务器时(我们称其为beta ),出现此错误:

* executing `deploy:restart'
* executing "cd /home/foo/bar/current && rake RAILS_ENV=beta queue:restart_workers"
        servers: ["208.0..."]
        [208.0...] executing command
    *** [err :: 208.0...] rake aborted!
    *** [err :: 208.0...] no such file to load -- bundler/setup
    *** [err :: 208.0...] /home/foo/bar/releases/20120630161947/Rakefile:5
    *** [err :: 208.0...] (See full trace by running task with --trace)
     ** [out :: 208.0...] (in /home/foo/bar/releases/20120630161947)
        command finished in 1183ms
    failed: "sh -c 'cd /home/foo/bar/current && rake RAILS_ENV=beta queue:restart_workers'" on 208.0...

deploy.rb的相关部分如下所示:

  task :restart do
    run "cd /home/foo/bar/current && rake RAILS_ENV=#{CAP_ENV} queue:restart_workers"
    run "cd /home/foo/bar/current && rake RAILS_ENV=#{CAP_ENV} db:migrate"
    run "touch #{deploy_to}/current/tmp/restart.txt"
  end   

不用说, rake RAILS_ENV=beta queue:restart_workers'在服务器上手动运行时效果很好。 同样,应用程序也得到了部署(代码是从git复制的,这只是部署失败的最后一部分)。

最后,该错误没有改变,因为在我安装rvm-capistrano并将其添加到Gemfile之前,所以我什至不确定它是否与rvm有关,我只是从在线查找而来。

谢谢

为了正常工作,rbenv必须使用它提供的垫片覆盖所有与ruby和gem相关的可执行文件。

通常,这是通过启动脚本完成的(这就是为什么当您登录服务器时可以运行),而Capistrano在没有外壳程序的情况下登录,因此不会运行这些脚本。

您必须将以下内容添加到您的deploy.rb中:

set :default_environment, {
  'PATH' => "$HOME/.rbenv/shims:$HOME/.rbenv/bin:$PATH"
}

并且不要在您的服务器上使用任何与rvm相关的内容,rbenv和rvm确实彼此不喜欢

PS:关于此主题的更多说明: http : //henriksjokvist.net/archive/2012/2/deploying-with-rbenv-and-capistrano/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM