2010-06-29 27 views
5

Tôi đang sử dụng capistrano để triển khai dự án Ruby on Rails của mình. Tôi đang ở trên một VPS Dreamhost và kể từ một vài tuần trước, không có thay đổi về capistrano hoặc hành khách, tôi bắt đầu gặp phải một vấn đề lạ với việc triển khai:Triển khai: liên kết tượng trưng trên capistrano trỏ thư mục "hiện tại" sang bản phát hành trước

Mỗi capistrano đang triển khai ứng dụng của tôi, mọi thứ đều đúng ngoại trừ triển khai: liên kết tượng trưng (được gọi theo mặc định) sẽ trỏ thư mục "hiện tại" sang bản phát hành mới nhất. Mặc dù bản phát hành mới được triển khai đúng vào thư mục "phát hành", vấn đề là liên kết tượng trưng "hiện tại" luôn được đặt ở bản phát hành trước thay vì phiên bản mới. Vì vậy, tôi có thể triển khai ứng dụng nhưng tôi luôn phải chạy triển khai hai lần liên tiếp.

Bạn có thể xem log capistrano đây: http://img715.imageshack.us/img715/7803/capistranoproblemb.png

Có ai khác có kinh nghiệm này trước hoặc có thể giúp tôi giải quyết nó?

Cảm ơn!

Trả lời

6

Tôi đã giải quyết vấn đề này với nhiệm vụ triển khai bổ sung để tạo lại liên kết tượng trưng bằng tên biến nội bộ khác với đường dẫn chính xác đến bản phát hành mới nhất (release_path thay vì latest_path hoặc một cái gì đó tương tự).


namespace :deploy do 
    desc "Recreate symlink" 
    task :resymlink, :roles => :app do 
    run "rm -f #{current_path} && ln -s #{release_path} #{current_path}" 
    end 
end 

after "deploy:create_symlink", "deploy:resymlink", "deploy:update_crontab" 
+4

Trong Capistrano mới nhất, đó là 'deploy: create_symlink' thay vì' deploy: symlink'. – manafire

+2

Vui lòng thay đổi câu trả lời được chấp nhận thành câu trả lời được đưa ra bởi @knocte. Kludge ở trên có thể hoạt động, nhưng đó là một mùi mã. – JellicleCat

+0

@JellicleCat: bạn đang sử dụng phiên bản capistrano nào? – knocte

6

Tôi nghĩ câu trả lời của @ foresth không phải là giải pháp tốt.

Tôi nghĩ điều xảy ra là bạn đang gặp phải this horrible bug của capistrano.

Cách khắc phục lỗi xung quanh như sau: KHÔNG ĐỌC THEO latest_release TRƯỚC KHI NHIỆM VỤ deploy HAPPENS.

+0

Đây phải là câu trả lời được chấp nhận. Điều chỉnh các tác vụ tùy chỉnh của tôi theo lỗi này đã giải quyết được vấn đề. – brendan

+0

@brendan: bạn đã tạo lại phiên bản capistrano nào? họ đang hỏi tôi rằng trong vấn đề github tôi liên kết ... – knocte

+0

Có vẻ như nó là 2.15.4 @knocte – brendan

Các vấn đề liên quan