INFO [050fe961] Running mkdir -p /home/rails/rails-
capistrano/releases/20140114234157 on staging-rails
DEBUG [050fe961] Command: cd /home/rails/rails-capistrano/repo && ( PATH=/opt/ruby/bin:$PATH GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/rails/git-ssh.sh mkdir -p /home/rails/rails-capistrano/releases/20140114234157 )
INFO [050fe961] Finished in 0.142 seconds with exit status 0 (successful).
INFO [2dea2fe5] Running git archive feature/Capistrano | tar -x -C /home/rails/rails-capistrano/releases/20140114234157 on staging-rails
DEBUG [2dea2fe5] Command: cd /home/rails/rails-capistrano/repo && ( PATH=/opt/ruby/bin:$PATH GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/rails/git-ssh.sh git archive feature/Capistrano | tar -x -C /home/rails/rails-capistrano/releases/20140114234157 )
DEBUG [2dea2fe5] fatal: Not a valid object name
DEBUG [2dea2fe5] tar: This does not look like a tar archive
DEBUG [2dea2fe5] tar:
DEBUG [2dea2fe5] Exiting with failure status due to previous errors
Je suis confus sur deux choses:
Pourquoi Capistrano fonctionne-t-il
git archive
ici:
git archive feature/Capistrano | tar -x -C /home/rails/rails-capistrano/releases/20140114234157
Pourquoi
tar
échoue?
capistrano
rvm-capistrano
capistrano3
Eric Francis
la source
la source
La suppression de app_name / repo a également résolu ce problème pour moi.
la source
Cela se produit lorsque le dépôt sur le serveur à déployer est en panne. Nous parlons du dépôt git nu que Capistrano placerait par défaut
/var/www/$application/repo
(pour référence d'autres personnes).Dans votre cas, il n'a pas de fonction locale / branche Capistrano , donc lors de l'exécution,
git archive feature/Capistrano
rien n'est envoyé vers ce|
tube. Pour confirmer, ssh dans le serveur, cd dans / home / rails / rails-capistrano / repo et exécutezgit branch
.Il exécute git archive comme moyen d'exporter l'arborescence de la branche sélectionnée. git archive "l'écrit dans la sortie standard" donc Capistrano la redirige vers tar afin de décompresser l'archive immédiatement dans votre nouveau répertoire de version. (Pourquoi Capistrano a choisi cela au lieu de git checkout me bat.)
tar échoue car il ne reçoit rien d:
Je peux penser à deux solutions / moyens de dépanner:
git remote -v
) - vous devrez peut-être simplement mettre à jour votre:repo_url
dans deploy.rb (et supprimer le repo / dir).la source
Je pense que ce dossier est rempli via un git pull, donc il ne devrait pas être vide. Si vous le voyez vide, le problème vient du git et non de l'archive tar.
Le problème que j'ai eu était que mon URL de référentiel capistrano deploy.rb était définie sur une valeur différente de celle du projet dans lequel je travaillais. Pour résoudre ce problème, j'ai également dû me connecter au serveur et supprimer le dossier app_name / repo qui doit ont mis en cache la mauvaise URL distante d'origine.
la source
Chaque fois que j'ai rencontré cette erreur, c'était parce que la branche spécifiée dans mon fichier deploy / environment .rb n'était pas archivée dans git. Faites un add / commit / git push origin nom_branche et cela fera probablement fonctionner les choses.
la source
J'utilise Bedrock Roots (wordpress) pour le développement, capistrano pour les déploiements et git flow. Je suis tombé sur cette erreur lors de la tentative de déploiement, alors que sur la branche hotfix / xxx localement. J'ai donc terminé le courant (modifications fusionnées pour développer la branche), puis déployé avec succès.
la source