【问题标题】:Capistrano destination path already exists, not an empty directoryCapistrano 目标路径已存在,而不是空目录
【发布时间】:2014-06-19 19:40:16
【问题描述】:

在 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.

这里是配置文件:

我可以在网上找到这个错误的only reason

同一个主持人扮演多个角色,所以他们在比赛?例如,我的意思是您可能多次将相同的 IP 地址定义为 :app 角色主机。

我猜这不适合上面的配置文件。

【问题讨论】:

    标签: ruby-on-rails capistrano capistrano3


    【解决方案1】:

    我遇到了同样的问题。原因在于角色和/或服务器的双重定义。 尝试删除

    server 'SERVER-IP', user: 'USERNAME', roles: %w{app}
    

    在 production.rb 和

    role :app, "SERVER-IP"
    

    在 deploy.rb 中。后者似乎只是简单的语法,而前者 - 是一个扩展的语法,因此您实际上声明了两次角色(更准确地说是三次:production.rb 中的 2 次和 deploy.rb 中的 1 次)。希望对您有所帮助。

    【讨论】:

    • 谢谢@leger。我删除了上述两行,但部署时错误仍然存​​在。虽然我认为我现在走在正确的轨道上,但在过去的 3 个小时里一直坚持下去。
    • 尝试通过rm -rf删除服务器上的APP-NAME并重新部署。我以这种方式运行了所有迭代,直到部署成功。有时与sudo reboot :)
    • 这是为我做的。正在将部署从 svn 更改为 git。只需要删除现有的“repo”目录(旧的 svn repo 缓存)。之后一切都好。 :)
    【解决方案2】:

    在相关说明中,我在其中一个部署上更改数据库连接文件设置时遇到了这个问题。

    在这种情况下,旧结构有一个用于数据库设置的共享文件,而新结构有两个。尽管这些已在配方中声明,但在自动删除旧版本时我遇到了错误。

    为了解决这个问题,我刚刚删除了旧版本,并运行了几次cap [server name] deploy 以清除它,并验证这不再发生。到目前为止,一切都很好。

    【讨论】:

      猜你喜欢
      • 2018-10-25
      • 1970-01-01
      • 1970-01-01
      • 2015-09-26
      • 2021-08-27
      • 1970-01-01
      • 2019-11-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多