【发布时间】:2011-11-23 16:51:55
【问题描述】:
当我运行cap deploy 时,Capistrano 将尝试创建一个文件夹,例如$HOME/sites/MY_APP/releases/TIMESTAMP。我可以看到该命令正在尝试运行,但它实际上不会创建文件夹。
我可以直接从 Capistrano 输出中复制命令并通过 SSH 运行命令,它运行良好,没有任何问题。
命令看起来像这样:
cp -RPp /home/some_user/sites/my_cool_app/shared/cached-copy /home/some_user/sites/my_cool_app/releases/20111123164239 && (echo 59bf115868c2430cd0475ca1596998f1cfa3c084 > /home/some_user/sites/my_cool_app/releases/20111123164239/REVISION)
为什么命令会通过 Capistrano 失败,但通过 SSH 终端成功?
【问题讨论】:
-
Capistrano 会在其他操作失败时回滚。你能发布 capistrano 的输出,当你在上面的时候,cap deploy:check 的输出?
-
上限从上限
deploy:check返回You appear to have all necessary dependencies installed -
可能有很多问题:您用来登录服务器的用户是否可以写入该文件夹?部署脚本中是否还有其他问题?
-
我还没有弄清楚这个问题,但问题似乎来自
$HOME/sites/MY_APP/releases目录不存在这一事实。如果您手动 ssh 并创建发布目录,它可以暂时解决问题。仍在试图弄清楚为什么 cap 不像以前那样这样做。 -
Steve:releases目录应该由
deploy:setup创建,你should run before the first deploy。
标签: ruby-on-rails ruby ruby-on-rails-3 capistrano