2012-03-13 72 views
0

我已經在服務器上部署了生產實例。它的工作很好。ROR部署:分段和開發環境

這是我需要做的。 在服務器上部署臨時和開發環境。 我已經在github中創建了一個分支來做到這一點。

配置 1)紅寶石1.8.6
2)Rails是被vendored
3)網絡服務器的Nginx和薄
4)我已經創建一個文件在/ usr /本地/ nginx的/啓用的位點和在/ etc /薄
6)進行了編輯的deploy.rb和配置下已經添加dev.rb和部署文件夾
7)Capistrano的正被在服務器上使用添加的網站上可獲得的文件夾
5)YML文件部署

問題: 如何從單獨的github分支部署不同的生產開發環境?這會重新啓動/影響當前的生產環境嗎?

我想確保生產不會受到此影響。請提供一個命令列表 或教程,這將幫助我。我進入學習ROR的很早階段,所以請點擊 一點細節。非常感謝幫助。

編輯:
1)通過本地安裝gem並在本地運行capify來增強項目的實力。
2)你在配置deploy.rb進行更改
3)設置:設置臨時和生產
4)階段:default_stage登臺。你必須編輯這個文件,更多的自定義部署
5)在config/deploy /下:創建生產和分段「.rb」文件。將分支設置爲主或任何特定的分支。將您的rails_env設置爲在staging.rb中登臺,並在production.rb中設置爲生產。 在這些適當的文件中將deploy_to設置爲xxxpath/staging和xxxpath/production。
6)帽部署將分期部署爲默認由於4)
7)蓋生產部署生產

回答

1

它看起來像你最的方式存在。關鍵是要確保Capistrano將每個分支部署到文件系統上的單獨位置 - 這些站點 - 可用的文檔根目錄應該不同(換句話說,不要覆蓋您的生產文件!)。

兩種方法,如果你已經設置穩定生產,分期和開發分支,在這裏使用http://help.github.com/deploy-with-capistrano/

記錄的方法您可以使用此方法一次性分支部署Using capistrano to deploy from different git branches

乘客尋找文件tmp/restart.txt知道何時重新啓動;這是在應用程序樹下,所以應該隻影響站點的特定變體。

根據您的服務器的容量,生產站點可能會因重新啓動其他環境而受到短暫的性能影響。如果可以,您應該考慮爲分段,測試,開發等獲取單獨的服務器。

+0

感謝您的答覆tharrison,我沒有安裝乘客。你是否確定生產環境不會受到影響?我會在幾個小時內給出這個鏡頭,所以生產上的一點壓力並不重要,因爲沒有人會使用它。 – sunny31 2012-03-13 21:46:51

+0

如果你有單獨的數據庫和單獨的分支簽出到不同的位置,那麼你應該確定。是否會出現中斷取決於每個環境是否有獨立的流程 - 您是否可以在不影響其他環境的情況下停下來?如果是這樣,那麼主要影響將是部署和Rails負載的性能影響。 – 2012-03-13 23:57:47