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
Saya bingung tentang dua hal:
Mengapa Capistrano berjalan di
git archive
sini:
git archive feature/Capistrano | tar -x -C /home/rails/rails-capistrano/releases/20140114234157
Mengapa
tar
gagal?
capistrano
rvm-capistrano
capistrano3
Eric Francis
sumber
sumber
Menghapus app_name / repo juga memperbaiki masalah ini untuk saya.
sumber
Ini terjadi ketika repo di server yang akan diterapkan rusak. Kita berbicara tentang repo git kosong yang akan dimasukkan Capistrano secara default
/var/www/$application/repo
(untuk referensi orang lain).Dalam kasus Anda, itu tidak memiliki fitur lokal / cabang Capistrano jadi ketika menjalankan
git archive feature/Capistrano
tidak ada output ke|
pipa itu. Untuk mengonfirmasi, ssh ke server, cd ke / home / rails / rails-capistrano / repo, dan jalankangit branch
.Ini menjalankan arsip git sebagai cara untuk mengekspor pohon cabang yang dipilih. arsip git "menuliskannya ke keluaran standar" sehingga Capistrano mengalihkannya ke tar untuk segera membuka kompresi arsip ke dalam direktori rilis baru Anda. (Mengapa Capistrano memilih ini daripada git checkout mengalahkan saya.)
tar gagal karena tidak menerima apa-apa d:
Saya dapat memikirkan dua kemungkinan solusi / cara untuk memecahkan masalah:
git remote -v
) - Anda mungkin hanya perlu mengupdate:repo_url
di deploy.rb (dan menghapus repo / dir).sumber
Saya pikir folder itu diisi melalui git pull, jadi tidak boleh kosong. Jika Anda melihatnya kosong masalahnya adalah dari git bukan tarball.
Masalah yang saya hadapi adalah URL repositori capistrano deploy.rb saya disetel ke yang berbeda dari proyek yang saya kerjakan. Untuk memperbaiki masalah ini, saya juga harus masuk ke server dan menghapus folder app_name / repo yang harus telah menyimpan cache URL jarak jauh asli yang buruk.
sumber
Setiap kali saya mengalami kesalahan ini, itu karena cabang yang ditentukan dalam file deploy / environment .rb saya tidak diperiksa ke git. Lakukan add / commit / git push origin branch_name dan itu kemungkinan akan membuat semuanya berfungsi.
sumber
Saya menggunakan Bedrock Roots (wordpress) untuk pengembangan, capistrano untuk menyebarkan dan aliran git. Tersandung pada kesalahan ini ketika mencoba untuk menyebarkan, saat berada di hotfix / xxx cabang secara lokal. Jadi saya menyelesaikan saat ini (perubahan gabungan untuk mengembangkan cabang) dan kemudian berhasil diterapkan.
sumber