capistrano rvm-capistrano capistrano3

Asignación de error de Capistrano: Esto no se ve como un archivo tar



rvm-capistrano capistrano3 (6)

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

Estoy confundido acerca de dos cosas:

  1. ¿Por qué Capistrano ejecuta el git archive aquí?
    git archive feature/Capistrano | tar -x -C /home/rails/rails-capistrano/releases/20140114234157

  2. ¿Por qué está fallando el tar ?


Cada vez que presiono este error fue porque la rama especificada en mi archivo deploy / environment .rb no estaba marcada en git. Haga un origen de inserción add / commit / git branch_name y eso probablemente hará que las cosas funcionen.


Creo que esa carpeta se llena con un git pull, por lo que no debería estar vacía. Si lo ves vacío, el problema es del git, no del tarball.

El problema que tenía era que mi capistrano deploy.rb repositorio URL se estableció en una diferente que el proyecto en el que estaba trabajando. Para solucionar este problema, también tuve que iniciar sesión en el servidor y eliminar la carpeta app_name / repo que debe han estado almacenando en caché la URL remota incorrecta original.


Eliminar el nombre_aplicación / repo también solucionó este problema para mí.


Esto sucede cuando el repositorio en el servidor para implementar está en mal estado. Estamos hablando del repositorio de git simple que Capistrano colocaría por defecto en /var/www/$application/repo (para referencia de otras personas).

En su caso, no tiene una función local / rama de Capistrano , por lo que cuando se ejecuta la git archive feature/Capistrano no se git archive feature/Capistrano ningún resultado | tubo. Para confirmar, ssh en el servidor, cd en / home / rails / rails-capistrano / repo, y ejecutar git branch .

  1. Está ejecutando el archivo git como una forma de exportar el árbol de la rama seleccionada. git archive "lo escribe en el resultado estándar", por lo que Capistrano lo redirecciona a tar para descomprimir el archivo de inmediato en su nuevo directorio de versiones. (Por qué Capistrano eligió esto, en lugar de que git checkout me derrota).

  2. el alquitrán falla porque no recibe nada d:

Puedo pensar en dos posibles soluciones / formas de solucionar problemas:

  • ssh en el servidor y elimine manualmente la carpeta repo (p. ej., en su caso / home / rails / rails-capistrano / repo) tal como lo menciona @lugolabs
  • asegúrese de que el repositorio del servidor esté utilizando el control remoto que está esperando (ssh in, cd en repo /, y ejecute git remote -v ) - puede que necesite actualizar su :repo_url en deploy.rb (y elimine el repositorio / dir).

Estoy usando Bedrock Roots (wordpress) para desarrollo, capistrano para deploys y git flow. Tropecé con este error cuando intenté implementarlo, mientras estaba en la rama hotfix / xxx localmente. Así que terminé actual (cambios fusionados para desarrollar la rama) y luego implementado con éxito.


Tuve el mismo problema, hasta que me di cuenta de que estaba tirando de la rama inexistente de git.