2011-06-10 133 views

回答

17

查看Bundler網站上對這兩者的描述。

運行bundle install --deployment將在生產環境中運行,但運行時會從rubygems中獲取寶石。爲了達到--deployment標誌的目的,請在「部署您的應用程序」標題下閱讀更多here

bundle package與來自Rails 2.3的舊rake rails:gems:freeze命令類似。它抓住寶石並將它們打包在供應商/緩存中。從捆綁現場here

你可以利用這一點避免依賴 上rubygems.org在部署時,或者如果 您有私人寶石不在 公共倉庫

+2

謝謝你,這使我閱讀和重新閱讀文檔,以充分了解你在說什麼......必須包圍我的頭,因爲你仍然有在生產服務器上運行「捆綁安裝」,即使使用捆綁軟件包並將供應商/緩存文件夾檢入源代碼控制 – concept47 2011-06-15 16:46:06

+0

捆綁包 - 安裝部署從rubygems抓取寶石。但是如果你已經完成了一個捆綁軟件包並且你的供應商/緩存已經準備好了,那該怎麼辦?它看起來像捆綁安裝 - 部署繼續打rubygems獲得寶石。 – Mojo 2012-05-10 18:20:12

17

我在開發模式下使用bundle install --path vendor/bundlebundle install --deployment將鎖定Gemfile.lock,並且在更改Gemfile時不會更新它,因此請勿在開發環境中使用部署選項。 bundle install --no-deployment將禁用捆綁包部署模式。 您可以通過正確的方式閱讀that有關包的使用情況。

+1

偉大的迴應幫助我更好地瞭解上述響應 – concept47 2011-06-15 15:21:31

+1

謝謝, - 無部署解釋幫助我在本地主機上運行從服務器下載的應用程序。 – 2012-03-10 08:05:38

5

我在RailsConf 2011的一次演講中詳細解釋了--deployment模式標誌背後的原因。這篇博客文章包含了我對該演講的註釋,並且(我希望)涵蓋了所有背後的推理 - 部署工作:http://andre.arko.net/2011/06/11/deploying-with-bundler-notes/

+0

感謝您的鏈接。這篇文章現在已經過了幾年了,我應該知道有什麼變化嗎? – 2016-01-25 21:37:54