【问题标题】:capistrano dev deploy failscapistrano 开发部署失败
【发布时间】:2011-05-26 02:18:25
【问题描述】:

capistrano 部署有点新,所以我正在努力让它正常工作。我发现另一个条目说这是一个符号链接问题,但我不认为这是因为“cap dev deploy”正确创建了当前符号链接。我在这台服务器上有一个阶段和一个开发环境(/apps/myhost/dev 和 /apps/myhost/stage),我希望将我最近的 git 更改从 git 推送到开发环境。我以应用程序用户身份 SSH 并执行以下操作:

cap dev deploy

我收到以下错误:

failed: "rvm_path=/usr/local/rvm /usr/local/bin/rvm-shell 'ree@myhost' -c 'bundle install --gemfile /apps/myhost/dev/releases/20110526014237/Gemfile --path /apps/myhost/dev/shared/bundle --deployment --quiet --without development test'" on dev.myhost.com

前面有很多:

rm: cannot remove directory `/apps/myhost/dev/releases/20110526014237/test/functional': No such file or directory

我假设 rm 错误是因为目录和文件已经被清理但我不确定为什么 rvm_path rvm-shell 失败?

【问题讨论】:

  • 好的。我更新了所有的 gem,cap 现在正在这样做:codebash: /usr/local/rvm/gems/ree-1.8.7-2011.03@myapp/bin/cap: /usr/local/rvm/rubies/ruby -1.8.7-p334/bin/ruby:错误的解释器:没有这样的文件或目录code
  • 修复了错误的解释器错误,现在我回到了我开始的地方:code failed: "rvm_path=/usr/local/rvm /usr/local/rvm/bin/rvm-shell '代码`

标签: ruby-on-rails ruby capistrano rvm


【解决方案1】:

如果您通过 SSH 进入自己运行失败的命令会发生什么?看起来它在安装捆绑包时失败了。你安装了Bundler吗?我从未使用 Cap 在 /apps/ 下部署两个环境。你能让它只在一种环境下工作吗?最后,我会尝试修复这些 rm 错误,然后再尝试解决它们之后的任何问题。一次只做一件事。

【讨论】:

  • 伊恩,感谢您的反馈。我实际上一直在通过 SSH 登录。我今天修复了它。在 config/deploy my stage、dev 和 prod .rb 文件下都设置了服务器和角色变量。您只能指定其中之一。我从每个服务器变量中删除了(因为它试图部署到 URL 以及 IP - 在角色下指定)并且它工作。现在剩下的就是让 rvm rmrc 在每次部署时都信任它!
【解决方案2】:

检查了我的 /apps/myapp/dev/config/deploy/ 目录并找到了这些文件:

dev.rb
stage.rb
prod.rb

已设置角色和服务器变量,因此尝试部署两次导致锁定。删除了服务器线并能够部署。

关于信任;将此行添加到 config/deploy.rb:

task :trust_rvmrc do
    run "rvm rvmrc trust #{latest_release}"
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多