我使用Capistrano的3.在过去,我可以成功地部署到我的服务器。
现在服务器迁移,并具有新的参数:
- SSH接入(I更新SSH信用凭证,并确保我可以不使用密码进行连接
authorized_keys
) - (我更新部署迪尔
staging.rb
因此与SSH凭证一起) - 现在
cap
可以连接到我的新的服务器,以便验证看上去都不错。
有问题的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
目录下,因为这将在部署(我想当时)创建。
在接下来的部署,我得到了同样的错误。 所以我做了一些google搜索,我最终加入以下钩:
# 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.rb
或staging|production.rb
分别? - 我有当我在一个新的环境中删除现有的共享文件(如打捆,TMP的PID等)或当前目录?