0

我正在使用Unicorn 部署到服务器,并在 rails 中使用 capistrano ....

但在部署的最后一步。Capistrano 存在此错误:

 INFO [47010f4f] Running /usr/bin/env service unicorn_app restart on xyzdomain.com
DEBUG [47010f4f] Command: service unicorn_app restart
DEBUG [47010f4f]    Couldn't reload, starting 'cd /var/www/app/current; rvm-shell 'default' -c 'bundle exec unicorn -D -c /var/www/app/shared/config/unicorn.rb -E staging'' instead
DEBUG [47010f4f]    
DEBUG [47010f4f]    /etc/init.d/unicorn_app: line 42: rvm-shell: command not found
DEBUG [47010f4f]    
cap aborted!

当我从服务器上的终端运行 rvm-shell 命令时,它运行没有错误。

注意:rvm-shell安装在 ~/.rvm/bin 中。所以这与这里提到的错误不同:https ://github.com/capistrano/capistrano/issues/43

为什么会这样?

4

1 回答 1

0

解决了问题:

这实际上是服务器上的一些权限问题

当我执行直接在服务器上失败的命令时,它产生了一些目录权限错误。我通过手动创建这些目录来解决它们。

cd /var/www/app/shared
mkdir pids
mkdir logs

奇怪的是 Capistrano在部署失败时没有显示具体的失败错误,这导致了很多混乱并浪费了调试时间。

希望我的回答能帮助其他人,如果他们遇到类似的错误并节省很多时间。:)

于 2014-04-28T10:11:46.140 回答