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
Меня смущают две вещи:
Почему
git archive
здесь работает Capistrano :
git archive feature/Capistrano | tar -x -C /home/rails/rails-capistrano/releases/20140114234157
Почему
tar
терпит неудачу?
capistrano
rvm-capistrano
capistrano3
Эрик Фрэнсис
источник
источник
Удаление app_name / repo также устранило эту проблему для меня.
источник
Это происходит, когда репо на сервере для развертывания не работает. Мы говорим о чистом репозитории git, который Capistrano по умолчанию вставляет
/var/www/$application/repo
(для справки других людей).В вашем случае у него нет локальной функции / ветки Capistrano, поэтому при запуске
git archive feature/Capistrano
ничего не выводится на этот|
канал. Для подтверждения, ssh на сервер, cd в / home / rails / rails-capistrano / repo и запуститеgit branch
.Он запускает архив git как способ экспортировать дерево выбранной ветви. git archive «записывает его на стандартный вывод», поэтому Capistrano перенаправляет его в tar , чтобы сразу же распаковать архив в новую директорию выпуска. (Почему Капистрано выбрал это вместо git checkout, меня поражает.)
tar не работает, потому что ничего не получает d:
Я могу придумать два возможных решения / способа устранения неполадок:
git remote -v
) - вам может просто потребоваться обновить ваш:repo_url
в deploy.rb (и удалить репо / dir).источник
Я думаю, что эта папка заполняется с помощью git pull, поэтому она не должна быть пустой. Если вы видите его пустым, значит проблема связана с git, а не с архивом.
Моя проблема заключалась в том, что URL-адрес моего репозитория capistrano deploy.rb был настроен на другой, чем тот проект, в котором я работал. Чтобы исправить эту проблему, мне также пришлось войти на сервер и удалить папку app_name / repo, которая должна кэшировали исходный неверный удаленный URL.
источник
Всякий раз, когда я сталкивался с этой ошибкой, это происходило из-за того, что ветвь, указанная в моем файле deploy / environment .rb, не была проверена в git. Сделайте add / commit / git push origin branch_name, и это, вероятно, заставит все работать.
источник
Я использую Bedrock Roots (wordpress) для разработки, capistrano для развертывания и git flow. Наткнулся на эту ошибку при попытке развернуть, находясь в ветке hotfix / xxx локально. Итак, я закончил текущий (объединил изменения в ветку разработки), а затем успешно развернул.
источник