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 exécute-t-il git archive
ici:git archive feature/Capistrano | tar -x -C /home/Rails/rails-capistrano/releases/20140114234157
Pourquoi tar
échoue?
J'ai eu le même problème, jusqu'à ce que je réalise que je retirais la branche inexistante de git.
La suppression de app_name/repo a également résolu ce problème pour moi.
Cela se produit lorsque le référentiel sur le serveur à déployer est perturbé. Nous parlons du rapport de base non git que Capistrano mettrait par défaut dans /var/www/$application/repo
(pour la référence d'autres personnes).
Dans votre cas, il ne possède pas de branche feature/Capistrano locale. Ainsi, lors de l'exécution de git archive feature/Capistrano
, rien ne s'affiche dans ce tube |
. Pour confirmer, ssh sur le serveur, cd dans/home/Rails/rails-capistrano/repo et exécutez git branch
.
Il utilise git archive comme moyen d’exporter l’arbre de la branche sélectionnée. git archive "écrit dans la sortie standard" donc Capistrano le redirige vers tar afin de décompresser l'archive immédiatement dans votre nouveau répertoire de publication . (Pourquoi Capistrano l'a choisi à la place de git checkout me vainc.)
tar échoue car il ne reçoit rien d:
Je peux penser à deux solutions/solutions possibles pour résoudre les problèmes suivants:
git remote -v
) - vous devrez peut-être simplement mettre à jour votre :repo_url
dans deploy.rb (et supprimer le repo/dir).Je pense que ce dossier est rempli via un git pull, il ne doit donc pas être vide. Si vous le voyez vide, le problème vient du git, pas de l'archive.
Le problème que je rencontrais était que mon URL de référentiel capistrano deploy.rb avait été définie sur un projet différent de celui dans lequel je travaillais. ont mis en cache l'URL distante mauvaise d'origine.
Chaque fois que j'ai rencontré cette erreur, c'est parce que la branche spécifiée dans mon fichier / environment .rb de deploy n'a pas été archivée dans git. Faites un add/commit/git Push Origine nom de branche et cela fera probablement fonctionner les choses.
J'utilise Bedrock Roots (wordpress) pour le développement, capistrano pour les déploiements et le flux git…. J'ai donc terminé les modifications actuelles (modifications fusionnées pour développer la branche), puis déployé avec succès.