簡體   English   中英

Bundler和JRuby的Rails部署策略

[英]Rails deployment strategies with Bundler and JRuby

我有一個jruby rails應用程序,我剛開始使用bundler進行gem依賴管理。 我有興趣聽取人們對部署策略的意見。 文檔說bundle package會將您的gem打包在本地,因此您不必在服務器上獲取它們(我相信warbler默認情況下會這樣做),但是我個人認為(對我們而言)這不是可行的方法我們部署的代碼(在本例中為WAR文件)變得更大。

我的偏好是模仿我們的MVN設置,該代碼將代碼復制到服務器后直接在服務器上獲取所有依賴項。 這就是我的想法,所有評論都值得贊賞:

第一步:建立war文件,復制到服務器
第2步:在服務器上解壓戰爭,使用mvn獲取Java依賴項第3步:使用Bundler提取Gem deps(這些應該放在哪里?
*步驟3是我不清楚的步驟。 我是否在考慮特定目標的情況下運行bundle install
步驟4:重新啟動Tomcat

再次,我的理由是我想在部署時將依賴項與代碼分開。 我還想將所有gem依賴項放置在應用程序本身中,以便包含它們,而不是將它們安裝在應用程序用戶的主目錄中(同樣,我相信這是Bundler的默認設置)

僅查看Warbler的默認結構,它將gems復制到Rails.root/gems ,所以我決定遵循該約定。

*注意:我看不到任何將此路徑定義為Rails的加載路徑的地方,但是顯然可以。 這是我的最終解決方案:

Step1: Build war file, copy to server
Step2: Unpack war on server, fetch java dependencies with mvn 
Step3: use Bundler to fetch Gem deps: `bundle install gems --without test --disable-shared-gems`
Step4: Restart Tomcat

另請注意, bundle install gems看起來像特定命令,即。 “安裝這些gems”,但是這些gems實際上是指Rails.root中的目錄gems。 該目錄由捆綁器創建,因此在部署時不需要存在。

希望對其他尋求類似解決方案的人有所幫助!

暫無
暫無

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

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