ข้อผิดพลาดของ Capistrano tar: สิ่งนี้ไม่เหมือนไฟล์เก็บถาวร tar


103
 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      

ฉันสับสนเกี่ยวกับสองสิ่ง:

  1. ทำไม Capistrano ถึงทำงานgit archiveที่นี่:
    git archive feature/Capistrano | tar -x -C /home/rails/rails-capistrano/releases/20140114234157

  2. ทำไมจึงtarล้มเหลว?

คำตอบ:


329

ฉันมีปัญหาเดียวกันจนกระทั่งฉันรู้ว่าฉันกำลังดึงสาขาที่ไม่มีอยู่ออกจากคอมไพล์


54
ช่างตีหน้าผาก
Grant Birchmeier

21
ฉันก็เป็นคนโง่เหมือนกัน
notaceo

12
ครั้งที่สองที่ฉันพบคำตอบของคุณครั้งที่สองสิ่งนี้เกิดขึ้นฉันรู้สึกโง่!
Fabian de Pabian

11
ฉันดีใจที่คำถามนี้มีการโหวตเพิ่มขึ้นมากมาย อย่างน้อยฉันก็ไม่เหงา
หั่น

6
อย่างจริงจังนี่อาจเป็นครั้งที่ 42 ที่ฉันค้นหาด้วย Google เหมือนกันและอ่านคำตอบนี้ xD
Cyril Duchon-Doris

19

การลบ app_name / repo ยังช่วยแก้ปัญหานี้ให้ฉันด้วย


1
สิ่งนี้ได้ผลสำหรับฉันบางครั้งเมื่อใดก็ตามที่มีปัญหา repo เกี่ยวกับการปรับใช้สูงสุด แต่ไม่เสมอไป
Jorge Orpinel

15

สิ่งนี้เกิดขึ้นเมื่อ repo ในเซิร์ฟเวอร์ที่จะปรับใช้เกิดความสับสน เรากำลังพูดถึง repo git เปล่าที่ Capistrano จะใส่ไว้โดยค่าเริ่มต้น/var/www/$application/repo(สำหรับการอ้างอิงของคนอื่น)

ในกรณีของคุณไม่มีคุณสมบัติในพื้นที่/สาขาCapistranoดังนั้นเมื่อgit archive feature/Capistranoไม่มีสิ่งใดที่เรียกใช้จะถูกส่งออกไปยัง|ท่อนั้น เพื่อยืนยัน SSH สู่เซิร์ฟเวอร์, CD เข้าไปใน / home / ราง / ราง-Capistrano / repo git branchและวิ่ง

  1. มันกำลังเรียกใช้ไฟล์เก็บถาวร gitเพื่อส่งออกต้นไม้ของสาขาที่เลือก git archive "เขียนไปยังเอาต์พุตมาตรฐาน" ดังนั้น Capistrano จึงเปลี่ยนเส้นทางไปยังtarเพื่อยกเลิกการบีบอัดไฟล์เก็บถาวรลงในไดเร็กทอรีรีลีสใหม่ของคุณทันที (เหตุใด Capistrano จึงเลือกสิ่งนี้แทนการชำระเงินด้วยคอมไพล์จึงเอาชนะฉันได้)

  2. tarล้มเหลวเพราะไม่ได้รับอะไรเลย d:

ฉันนึกถึงวิธีแก้ปัญหา / วิธีแก้ปัญหาที่เป็นไปได้สองวิธี:

  • ssh ลงในเซิร์ฟเวอร์และลบโฟลเดอร์ repo ด้วยตนเอง (เช่นในกรณีของคุณ / home / railway / railway-capistrano / repo) ตามที่ @lugolabs กล่าวถึง
  • ตรวจสอบให้แน่ใจว่า repo ของเซิร์ฟเวอร์กำลังใช้รีโมตที่คุณต้องการ (ssh in, cd เป็น repo / และเรียกใช้git remote -v) - คุณอาจต้องอัปเดต:repo_urlใน deploy.rb (และลบ repo / dir)

เรามีวิธีอื่นแทนการลบ repo ปัจจุบันหรือไม่?
hainguyen

4

ฉันคิดว่าโฟลเดอร์นั้นได้รับการเติมข้อมูลผ่าน git pull ดังนั้นจึงไม่ควรว่างเปล่า หากคุณเห็นว่ามันว่างเปล่าปัญหามาจาก git ไม่ใช่ tarball

ปัญหาที่ฉันพบคือ URL ที่เก็บ capistrano deploy.rb ของฉันถูกตั้งค่าเป็น URL ที่แตกต่างจากโครงการที่ฉันกำลังทำงานอยู่เพื่อแก้ไขปัญหานี้ฉันต้องเข้าสู่ระบบเซิร์ฟเวอร์และลบโฟลเดอร์ app_name / repo ซึ่งต้อง ได้รับการแคช URL ระยะไกลเดิมที่ไม่ถูกต้อง


4
สำหรับชาว Google: ตรวจสอบด้วยว่าคุณตั้งสาขาที่มีอยู่แล้วหรือยัง !!! ... ทำงานให้ฉัน :)
เทียบเท่า

4

เมื่อใดก็ตามที่ฉันพบข้อผิดพลาดนี้เป็นเพราะสาขาที่ระบุในไฟล์deploy / environment .rb ของฉันไม่ได้ตรวจสอบใน git ทำการเพิ่ม / กระทำ / git push origin branch_nameและนั่นจะทำให้สิ่งต่างๆทำงานได้


0

ฉันใช้ Bedrock Roots (wordpress) สำหรับการพัฒนา capistrano สำหรับการปรับใช้และการไหลของคอมไพล์ พบข้อผิดพลาดนี้เมื่อพยายามปรับใช้ในขณะที่โปรแกรมแก้ไขด่วน / xxx สาขาภายในเครื่อง ดังนั้นฉันจึงเสร็จสิ้นปัจจุบัน (รวมการเปลี่ยนแปลงเพื่อพัฒนาสาขา) และทำให้ใช้งานได้สำเร็จ


คุณเข้าใจหรือไม่ว่าทำไมการรวมเข้ากับการพัฒนาจึงแก้ไขปัญหาของคุณได้
Eric Francis

การปรับใช้สาขาอื่นอาจใช้งานได้ แต่คำถามยังคงอยู่ว่าเหตุใดสาขาที่คุณพยายามปรับใช้จึงไม่ทำงาน ฉันอาจมีคำตอบ
Jorge Orpinel

@EricFrancis จริงๆแล้วฉันทำตอนนี้) เนื่องจากสถานะคำตอบที่ได้รับการโหวตโปรแกรมแก้ไขด่วนไม่มีอยู่ในระยะไกล (โดยที่ capistrano ใช้จาก)
Sergey Dubovik
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.