2014-06-19 23 views
5

Während eine Rails-Anwendung mit Capistrano auf Ubuntu 14.04 bereitstellen, ich die folgende Fehlermeldung erhalten:Capistrano Zielpfad bereits existiert, kein leeres Verzeichnis

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. 

Hier werden Konfigurationsdateien:

Die 012.333.für diesen Fehler kann ich online finden;

same host in more than one role, so that they're racing? For example I mean that you might have the same IP address defined as an :app role host more than once.

Welche ich denke, passt nicht mit den obigen Konfigurationsdateien.

Antwort

11

Ich hatte das gleiche Problem. Der Grund liegt in der Doppeldefinition der Rolle und/oder des Servers. Versuchen

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

in production.rb und

role :app, "SERVER-IP" 

in deploy.rb zu entfernen. Letzteres scheint nur eine einfache Syntax zu sein, während die erstere - eine Erweiterung ist, also deklarieren Sie Rollen in der Tat zweimal (drei Mal genauer gesagt: 2 in production.rb und 1 in deploy.rb). Ich hoffe es hilft.

+0

Dank @leger. Ich habe die obigen 2 Zeilen entfernt, aber der Fehler bleibt bei der Bereitstellung bestehen. Obwohl ich denke, dass ich jetzt auf dem richtigen Weg bin, war ich in den letzten 3 Stunden drangeblieben. –

+3

Versuchen Sie, APP-NAME über 'rm -rf' auf dem Server zu löschen und erneut zu implementieren. Ich habe alle meine Iterationen auf diese Weise ausgeführt, bis die Bereitstellung erfolgreich beendet wurde. Manchmal mit 'sudo reboot' :) – Leger

+0

Woah !!! Endlich. Glückseligkeit. : D –

Verwandte Themen