在 Ubuntu 14.04 上使用 Capistrano 部署 Rails 应用程序时,出现以下错误:
fatal: destination path '/var/www/APP-NAME/repo' already exists and is not an empty directory.
cf5a389e] Running /usr/bin/env [ -f /var/www/rd/repo/HEAD ] on LINODE-INSTANCE-IP
DEBUG[cf5a389e] Command: [ -f /var/www/rd/repo/HEAD ]
DEBUG[cf5a389e] Finished in 0.005 seconds with exit status 1 (failed).
DEBUG[8899b95c] Running /usr/bin/env if test ! -d /var/www/rd; then echo "Directory does not exist '/var/www/rd'" 1>&2; false; fi on LINODE-INSTANCE-IP
DEBUG[8899b95c] Command: if test ! -d /var/www/rd; then echo "Directory does not exist '/var/www/rd'" 1>&2; false; fi
DEBUG[8899b95c] Finished in 0.005 seconds with exit status 0 (successful).
INFO[fc5f524b] Running /usr/bin/env git clone --mirror GIT_REPO_URL /var/www/APP-NAME/repo on LINODE-INSTANCE-IP
DEBUG[fc5f524b] Command: cd /var/www/APP-NAME && ( GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/rd/git-ssh.sh /usr/bin/env git clone --mirror GIT-REPO-URL /var/www/APP-NAME/repo )
DEBUG[fc5f524b] fatal: destination path '/var/www/APP-NAME/repo' already exists and is not an empty directory.
以下是配置文件:
- 配置/部署/生产.rb http://pastebin.com/r0kwHpTG
- 配置/部署.rb http://pastebin.com/fmmJkZBv
The 唯一的理由 https://groups.google.com/forum/#!topic/capistrano/zOpCpwgFKpY对于这个错误我可以在网上找到的是;
同一个主持人扮演多个角色,这样他们就可以比赛?例如,我的意思是您可能多次将同一 IP 地址定义为 :app 角色主机。
我猜这与上面的配置文件不符。
我有同样的问题。原因在于角色和/或服务器的双重定义。
尝试删除
server 'SERVER-IP', user: 'USERNAME', roles: %w{app}
生产中.rb 和
role :app, "SERVER-IP"
在deploy.rb中。后者似乎只是简单的语法,而前者是扩展的语法,因此实际上您声明了两次角色(更准确地说是三次:在 production.rb 中 2 次,在 deploy.rb 中 1 次)。希望能帮助到你。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)