使用Capistrano进行部署时出错

时间:2012-05-13 20:54:21

标签: ruby-on-rails capistrano unicorn

我正在关注部署到VPS的Railscast,一切顺利,直到我尝试运行cap deploy。尝试查找目录时似乎失败了。以下是错误消息:

* executing `deploy'
triggering before callbacks for `deploy'
 * executing `deploy:check_revision'
 * executing `deploy:update'
** transaction: start
* executing `deploy:update_code'
updating the cached checkout on all servers
executing locally: "git ls-remote git@github.com:markprovan/dropwall_rails.git master"
command finished in 2531ms
* executing "if [ -d /home/deployer/apps/dropwall_rails/shared/cached-copy ]; then cd   /home/deployer/apps/dropwall_rails/shared/cached-copy && git fetch -q origin && git fetch -- tags -q origin && git reset -q --hard 9407f1feb2ea5b1c4a0666196bdcbb9ad888563e && git clean -q -d -x -f; else git clone -q git@github.com:markprovan/dropwall_rails.git /home/deployer/apps/dropwall_rails/shared/cached-copy && cd /home/deployer/apps/dropwall_rails/shared/cached-copy && git checkout -q -b deploy 9407f1feb2ea5b1c4a0666196bdcbb9ad888563e; fi"
servers: ["209.61.142.61"]
Password: 
[209.61.142.61] executing command
** [209.61.142.61 :: out] The authenticity of host 'github.com (207.97.227.239)' can't be established.
** RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
** Are you sure you want to continue connecting (yes/no)?
** [209.61.142.61 :: out] yes
** Warning: Permanently added 'github.com,207.97.227.239' (RSA) to the list of known hosts.
command finished in 2655ms
copying the cached version to /home/deployer/apps/dropwall_rails/releases/20120513204913
* executing "cp -RPp /home/deployer/apps/dropwall_rails/shared/cached-copy /home/deployer/apps/dropwall_rails/releases/20120513204913 && (echo 9407f1feb2ea5b1c4a0666196bdcbb9ad888563e > /home/deployer/apps/dropwall_rails/releases/20120513204913/REVISION)"
servers: ["209.61.142.61"]
[209.61.142.61] executing command
** [out :: 209.61.142.61] cp: cannot create directory `/home/deployer/apps/dropwall_rails/releases/20120513204913': No such file or directory
command finished in 482ms
*** [deploy:update_code] rolling back
* executing "rm -rf /home/deployer/apps/dropwall_rails/releases/20120513204913; true"
servers: ["209.61.142.61"]
[209.61.142.61] executing command
command finished in 479ms
failed: "sh -c 'cp -RPp /home/deployer/apps/dropwall_rails/shared/cached-copy /home/deployer/apps/dropwall_rails/releases/20120513204913 && (echo 9407f1feb2ea5b1c4a0666196bdcbb9ad888563e > /home/deployer/apps/dropwall_rails/releases/20120513204913/REVISION)'" on 209.61.142.61

我已经花了很多年的时间,似乎无法找到我出错的地方。

2 个答案:

答案 0 :(得分:23)

您是否运行cap deploy:setupcap deploy:check?这些应该突出很多常见问题。

上面导致失败的错误看起来像是权限问题。

cp: cannot create directory `/home/deployer/apps/dropwall_rails/releases/20120513204913': No such file or directory

确保该文件夹存在,并且部署用户具有操作它的正确权限。

答案 1 :(得分:0)

特权问题可能是由默认的Capistrano use_sudo行为造成的。

这可以通过以下配置参数覆盖: set:use_sudo,false

奇怪的是,如果此参数未设置为false,Capistrano将对某些命令使用sudo,而不会将其用于其他命令。对我来说似乎是一个错误。