2008-09-29 46 views
10

Tôi đang tìm cách triển khai một ứng dụng Ruby on Rails (chạy trên JRuby) đến một cá thể Tomcat để thử nghiệm.Cách tốt nhất để triển khai ứng dụng JRuby on Rails cho Tomcat là gì?

Ví dụ tomcat đang chạy trên máy chủ Solaris mà tôi có thể SSH. Tôi đã xem xét sử dụng Capistrano, nhưng dường như không có nhiều thứ để sử dụng nó để triển khai Tomcat, hoặc thậm chí là chạy nó dưới JRuby, và tôi tiếp tục gặp lỗi trong Capistrano do môi trường Windows/JRuby PC của tôi đang chạy (vâng, đó là công ty - không phải lựa chọn của tôi, nhưng tôi phải sống với nó).

Tôi đang sử dụng warble để xây dựng tệp .war và ứng dụng triển khai và chạy tốt khi tôi sao chép và triển khai thủ công. Tôi muốn một cái gì đó dễ dàng hơn và tự động hơn để thực sự có được nó ở đó.

Mọi người đã làm điều này trước đây? Tài liệu trên web có vẻ khá mỏng.

Trả lời

3

Tôi không có nhiều kinh nghiệm về điều này, vì vậy tôi không biết liệu tôi có thể cung cấp cho bạn cách tốt nhất hay không, nhưng nếu Capistrano không hoạt động và bạn không thể cài đặt MRI riêng biệt để chạy nó, bạn chỉ có một vài lựa chọn thay thế trái:

Thử chạy Rake đồng bằng và viết mục tiêu triển khai của riêng bạn: http://www.gra2.com/article.php/deploy-ruby-on-rails-applications-rake

hoặc sử dụng Ant hoặc Maven.

Hoặc nếu nó chỉ MỘT máy chủ bạn phải triển khai, bạn có thể chỉ cần hack cùng hai tập lệnh Ruby - một tập lệnh lắng nghe trên máy chủ để yêu cầu tắt/khởi động và một địa chỉ mà bạn chạy tới: Gửi tắt máy, quét qua tệp, gửi khởi động.

Nhân tiện, bạn đã gửi bất kỳ lỗi tích hợp nào bạn tìm thấy với Capistrano cho nhóm JRuby chưa? Tôi chắc rằng họ sẽ rất vui khi có bất kỳ đóng góp nào. :)

+0

Tuyệt vời, cách tiếp cận đó đã trở thành dễ dàng nhất. Đã kết thúc bằng plink.exe thay vì SSH (đang ở trên cửa sổ). Tôi có một số bản sửa lỗi cho các vấn đề về capistrano mà tôi nhấn và một số lỗi khác mà tôi không khắc phục được. Tôi sẽ gửi chúng cho capistrano :) – madlep

2

Có thể đáng xem 'Vlad the deployer' nó thêm remote_task vào Rake cho phép bạn chạy các tác vụ trên máy chủ từ xa. Tuy nhiên, cá nhân tôi thích có một nhiệm vụ Rake tiêu chuẩn trên máy chủ, ssh và chạy nhiệm vụ đó - sau đó thực hiện thanh tra svn, tạo tệp WAR, bất cứ điều gì ...

2

Tôi có thể sử dụng Ant cho điều này. Sau khi tất cả, nó chỉ là một tập tin WAR, phải không? Tôi không biết bạn đang sử dụng phiên bản Tomcat nào nhưng phiên bản 4.1x comes with an Ant task for deploying to Tomcat.

15

Tôi đang chạy dự án Rails sử dụng JRuby và triển khai cho máy chủ Tomcat. Tôi đã chọn triển khai với Capistrano vì nó tự động hóa mọi thứ. Tôi đã phải thực hiện một vài thay đổi nhỏ để vòng đời triển khai Capistrano của để làm cho nó chạy trên Tomcat:

Bước 1: Tôi tạo ra một nhiệm vụ tiếng líu lo để được chạy trên máy chủ sau khi Capistrano cập nhật mã:

desc "Run the warble command to deploy the site" 
namespace(:deploy) do 
    task :warble do 
    run ". ~/.profile;cd #{release_path};warble" 
    end 
end 

Và nối nó vào Capistrano vòng đời sử dụng:

after 'deploy:update_code', 'deploy:warble' 

My Tomcat máy chủ có một liên kết tượng trưng chỉ tới #{release_path}/tmp/war thư mục được tạo ra bởi tiếng líu lo. Nếu bạn không thích điều này, bạn có thể dễ dàng sửa đổi nhiệm vụ warble để di chuyển tệp chiến tranh vào thư mục Tomcat thay thế.

Bước 2: Tôi overrode các deploy:startdeploy:stop nhiệm vụ để họ tung ra máy chủ Tomcat thay vì một máy chủ mongrel:

desc "Starts the Tomcat Server" 
namespace(:deploy) do 
    task :start do 
    sudo "#{tomcat_home}/bin/startup.sh" 
    end 
end 

desc "Shutdown the Tomcat Server" 
namespace(:deploy) do 
    task :stop do 
    sudo "#{tomcat_home}/bin/shutdown.sh" 
    end 
end 

tôi chạy nhiệm vụ Capistrano sử dụng MRI chứ không phải là thông dịch viên JRuby.

1

Có một vài công thức nấu ăn Capistrano để triển khai cho Tomcat - Tôi đã xây dựng một công thức thành viên ngọc được gọi là capistrano-tomcat. Phải mất một WAR bạn đã xây dựng (có thể với Warbler) và triển khai và bắt đầu một cá thể Tomcat trên một máy chủ từ xa.

Nguồn đang bật trên Github: http://github.com/rhunter/capistrano-tomcat

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