迁移服务器后,Capistrano3部署失败

时间:2014-10-01 16:29:01

标签: ruby-on-rails ruby git ssh capistrano

我正在使用Capistrano 3.过去我可以成功部署到我的服务器。

现在服务器已迁移并具有新参数:

  • SSH访问(我更新了SSH凭据并确保我可以使用authorized_keys无密码连接)
  • 部署目录(我相应地更新了staging.rb和SSH凭据)
  • 现在cap可以连接到我的新服务器,因此Auth看起来很好。

current目录

的问题

但是,使用cap staging deploy时出现错误:

SSHKit::Command::Failed: if test ! -d /var/www/my-project/subdomains/dev/current; then echo "Directory does not exist '/var/www/my-project/subdomains/dev/current'" 1>&2; false; fi exit status: 1

我查了一下好奇的current目录仍在那里(与其他目录一起迁移)。我删除了current目录,因为这将在部署中创建(我当时认为)。

在下次部署时,我遇到了同样的错误。所以我做了一些谷歌搜索,最后我添加了以下钩子:

# Had to insert this hook after migrating the server
# Maybe this can be removed after the first successful deployment
after 'deploy:set_current_revision', 'deploy:symlink:release'

我认为这不是一个非常干净的方法,但从那时起current目录已经创建,我与cap staging deploy的距离更远。

现在每当我设置Capistrano时,我都惊讶于它的工作原理是多么轻松,但是现在我已经搬到了另一台服务器上,我一直遇到问题。

我想知道:

  • 是否有新方法分别在deploy.rbstaging|production.rb配置环境?
  • 当我在新环境中时,是否必须删除现有的共享文件(例如bundler,tmp,pids等)或当前目录?

1 个答案:

答案 0 :(得分:0)

我设法修复了我的部署,我不确定我采取的哪些步骤确实是必需的。 我在此SO帖子中记录了解决方案:Bundler in deployment mode does not find Gems

相关问题