Question Erreur Capistrano tar: Cela ne ressemble pas à une archive tar


 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 à propos de deux choses:

  1. Pourquoi Capistrano fonctionne-t-il? git archive ici:
    git archive feature/Capistrano | tar -x -C /home/rails/rails-capistrano/releases/20140114234157

  2. Pourquoi est-ce tar échouer?


80
2018-01-14 23:53


origine


Réponses:


J'ai eu le même problème, jusqu'à ce que je réalise que je retirais la branche inexistante de git.


246
2018-05-29 15:09



La suppression de app_name / repo a également résolu ce problème pour moi.


17
2018-05-27 16:55



Cela se produit lorsque le dépôt dans le serveur à déployer est foutu. Nous parlons du repo git nu que Capistrano mettrait par défaut /var/www/$application/repo (pour référence à d'autres personnes).

Dans votre cas, il n'y a pas de local caractéristique / Capistrano branche alors en courant git archive feature/Capistrano rien n'est sorti à cela | tuyau. Pour confirmer, installez ssh dans le serveur, cd dans / home / rails / rails-capistrano / repo et exécutez git branch.

  1. C'est courant archive git comme moyen d'exporter l'arborescence de la branche sélectionnée. archive git "écrit-le à la sortie standard" afin que Capistrano le redirige vers le goudron afin de décompresser l'archive immédiatement dans votre nouveau répertoire de publication. (Pourquoi Capistrano a-t-il choisi cela au lieu de passer à la caisse?)

  2. le goudron échoue parce qu'il ne reçoit rien d:

Je peux penser à deux solutions possibles / moyens de dépanner:

  • ssh dans le serveur et supprimez manuellement le dossier repo (par exemple dans votre cas / home / rails / rails-capistrano / repo) comme mentionné par @lugolabs
  • Assurez-vous que le dépôt du serveur utilise la télécommande que vous attendez (ssh in, cd into repo /, et exécutez git remote -v) - il vous suffit de mettre à jour votre :repo_url dans deploy.rb (et supprimez le repo / dir).

14
2017-11-17 00:40



Je pense que ce dossier est alimenté via un git pull, il ne doit donc pas être vide. Si vous le voyez vide, le problème vient de git pas de l'archive.

Le problème que j'avais était que mon URL de dépôt capistrano deploy.rb était différente de celle dans laquelle je travaillais. Pour résoudre ce problème, j'ai également dû ouvrir une session sur le serveur et supprimer le dossier app_name / repo qui doit ont mis en cache l'URL distante d'origine.


4
2018-02-09 00:13



Chaque fois que j'ai frappé cette erreur, c'était parce que la branche spécifiée dans mon déployer /environnementLe fichier .rb n'a pas été archivé dans git. Effectuez une origine add / commit / git push Nom de la filiale et cela fera probablement fonctionner les choses.


2
2017-09-30 08:52



J'utilise Bedrock Roots (wordpress) pour le développement, capistrano pour les déploiements et git flow. Trébuché sur cette erreur lorsque essayé de déployer, alors que sur hotfix / x.x.x branche localement. J'ai donc fini le courant (changements fusionnés pour développer la branche) et ensuite déployé avec succès.


0
2017-08-26 12:47