Capistrano error tar: Đây không giống như một kho lưu trữ tar


102
 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      

Tôi bối rối về hai điều:

  1. Tại sao Capistrano lại chạy git archiveở đây:
    git archive feature/Capistrano | tar -x -C /home/rails/rails-capistrano/releases/20140114234157

  2. Tại sao lại tarthất bại?

Câu trả lời:


321

Tôi đã gặp vấn đề tương tự, cho đến khi tôi nhận ra rằng tôi đang kéo nhánh không tồn tại từ git.


53
Đúng là một kẻ đập trán.
Grant Birchmeier

20
Tôi cũng là người câm
notaceo

12
Lần thứ hai tôi gặp câu trả lời của bạn, lần thứ hai điều này xảy ra, tôi cảm thấy chết lặng!
Fabian de Pabian

11
Tôi rất vui vì câu hỏi này có rất nhiều ủng hộ. Ít nhất tôi không thất bại trong cô đơn.
băm nhỏ

6
Nghiêm túc, đây có lẽ là thời gian 42 Tôi đang làm việc tìm kiếm google cùng và đọc câu trả lời xD này
Cyril Duchon-Doris

19

Xóa app_name / repo cũng đã khắc phục sự cố này cho tôi.


1
Điều này đã làm việc với tôi một số lần bất cứ khi nào có vấn đề về repo với triển khai giới hạn nhưng không phải lúc nào.
Jorge Orpinel

15

Điều này xảy ra khi repo trong máy chủ để triển khai bị lộn xộn. Chúng ta đang nói về repo git trần mà Capistrano mặc định sẽ đưa vào /var/www/$application/repo(để người khác tham khảo).

Trong trường hợp của bạn, nó không có tính năng cục bộ / nhánh Capistrano nên khi chạy git archive feature/Capistranokhông có gì xuất ra |đường ống đó . Để xác nhận, hãy ssh vào máy chủ, cd vào / home / rails / rails-capistrano / repo và chạy git branch.

  1. Nó đang chạy kho lưu trữ git như một cách để xuất cây của nhánh đã chọn. git archive "ghi nó ra đầu ra tiêu chuẩn" để Capistrano chuyển hướng nó thành tar để giải nén ngay lập tức kho lưu trữ vào thư mục phát hành mới của bạn. (Tại sao Capistrano lại chọn điều này thay vì thanh toán git đánh bại tôi.)

  2. tar không thành công vì nó không nhận được gì d:

Tôi có thể nghĩ ra hai giải pháp / cách khả thi để khắc phục sự cố:

  • ssh vào máy chủ và xóa thủ công thư mục repo (ví dụ: trong trường hợp của bạn / home / rails / rails-capistrano / repo) như được đề cập bởi @lugolabs
  • đảm bảo rằng repo của máy chủ đang sử dụng điều khiển từ xa mà bạn đang mong đợi (ssh vào, cd vào repo / và chạy git remote -v) - bạn có thể chỉ cần cập nhật :repo_urltrong deploy.rb (và xóa repo / dir).

Chúng ta có cách nào khác thay vì xóa repo hiện tại không?
hainguyen

4

Tôi nghĩ rằng thư mục đó được điền thông qua một git pull, vì vậy nó không nên trống. Nếu bạn thấy nó trống, vấn đề là do git không phải tarball.

Vấn đề tôi gặp phải là URL kho lưu trữ capistrano deploy.rb của tôi được đặt thành một URL khác với dự án mà tôi đang làm việc. Để khắc phục sự cố này, tôi cũng phải đăng nhập vào máy chủ và xóa thư mục app_name / repo. đã được lưu vào bộ nhớ đệm của URL từ xa không hợp lệ ban đầu.


4
cho người dùng googling: cũng kiểm tra xem bạn có đặt chi nhánh hiện tại không !!! ... đã làm việc cho tôi :)
tương đương 8

4

Bất cứ khi nào tôi gặp lỗi này, đó là do nhánh được chỉ định trong tệp .rb triển khai / môi trường của tôi không được kiểm tra thành git. Thực hiện thêm / commit / git push origin branch_name và điều đó có thể sẽ làm cho mọi thứ hoạt động.


0

Tôi đang sử dụng Bedrock Roots (wordpress) để phát triển, capistrano để triển khai và git flow. Đã xảy ra lỗi này khi cố gắng triển khai, trong khi ở nhánh hotfix / xxx cục bộ. Vì vậy, tôi đã hoàn thành hiện tại (các thay đổi hợp nhất để phát triển chi nhánh) và sau đó triển khai thành công.


Bạn có hiểu tại sao việc hợp nhất vào phát triển lại khắc phục được sự cố của bạn không?
Eric Francis

Việc triển khai các nhánh khác có thể hoạt động, nhưng câu hỏi vẫn là tại sao nhánh cụ thể mà bạn đang cố gắng triển khai không hoạt động? Tôi có thể có một câu trả lời.
Jorge Orpinel

@EricFrancis Thực ra, tôi làm bây giờ) Khi bình chọn tiểu bang trả lời, hotfix không tồn tại trên xa (nơi capistrano triển khai từ)
Sergey Dubovik
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.