簡體   English   中英

將JRuby on Rails應用程序部署到Tomcat的最佳方法是什么?

[英]What's the best way to deploy a JRuby on Rails application to Tomcat?

我正在研究如何將Ruby on Rails應用程序(在JRuby上運行)部署到Tomcat實例進行測試。

tomcat實例正在我可以SSH到的Solaris服務器上運行。 我已經看過使用Capistrano,但似乎沒有太多關於使用它來部署到Tomcat,甚至在JRuby下運行它,並且由於Windows / JRuby環境我一直在Capistrano中遇到錯誤我的電腦正在運行(是的,這是公司 - 不是我的選擇,但我必須忍受它)。

我正在使用warble來構建.war文件,一旦我手動復制並部署它,應用程序就會部署並運行正常。 我想要更簡單,更自動的東西來實現它。

有人這么做過嗎? 網絡上的文檔似乎很薄。

我正在使用JRuby運行Rails項目並部署到Tomcat服務器。 我選擇使用Capistrano進行部署,因為它可以自動化所有內容。 我不得不對Capistrano的部署生命周期進行一些小修改,以使其在Tomcat上運行:

第1步:我在Capistrano更新代碼后創建了一個在服務器上運行的warble任務:

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

並使用以下方法將其掛鈎到Capistrano生命周期:

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

我的Tomcat服務器有一個符號鏈接,指向#{release_path}/tmp/war創建的#{release_path}/tmp/war目錄。 如果您不喜歡這樣,可以輕松修改warble任務,將war文件移動到Tomcat目錄中。

第2步:我覆蓋deploy:startdeploy:stop任務,以便他們啟動Tomcat服務器而不是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

我使用MRI而不是JRuby解釋器運行Capistrano任務。

我對此沒有多少經驗,所以我不知道我是否可以給你最好的方法,但是如果Capistrano無法正常工作,並且你不能單獨進行MRI安裝就可以運行它,你有還剩下幾個選擇:

嘗試運行普通Rake並編寫自己的部署目標: http//www.gra2.com/article.php/deploy-ruby-on-rails-applications-rake

或者使用Ant或Maven。

或者,如果它只需要部署到一台服務器,您可以將兩個Ruby腳本混合在一起 - 一個在服務器上偵聽關閉/啟動請求,另一個在您運行的本地:發送shutdown,scp over the file,send啟動。

順便問一下,你有沒有向Capubrano提交任何整合錯誤給JRuby團隊? 我相信他們會很樂意做出任何貢獻。 :)

可能值得看看'Vlad the deployer'它將remote_task添加到Rake,允許您在遠程服務器上運行任務。 然而,我個人更喜歡在服務器上有一個標准的Rake任務,ssh並運行該任務 - 然后執行svn checkout,制作WAR文件,無論......

我可能會為此使用Ant。 畢竟,它只是另一個WAR文件,對吧? 我不知道您正在使用哪個版本的Tomcat,但版本4.1x 附帶了用於部署到Tomcat的Ant任務

有一些用於部署到Tomcat的Capistrano配方 - 我在一個名為capistrano-tomcat的寶石中構建了一個。 它需要你構建的WAR(可能使用Warbler )並在遠程服務器上部署和啟動Tomcat實例。

源代碼在Github: http//github.com/rhunter/capistrano-tomcat

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM