2011-11-07 57 views
5

我正在使用的rails 3.0.x項目使用包含大量測試數據的gem,這些數據不需要用於heroku部署。我想排除這個來自heroku slu as,因爲它增加了幾十個megs給slu((並且已經推動我們超過了100mb的大小限制幾次,我們的slu is因其他原因而大)。從heroku slugs中排除寶石中的文件(使用.slugignore,heroku)

我已經嘗試使用.slugignore機制來做到這一點,但我找不到一種方法讓它在gems中排除文件,而不是在應用程序中排除文件。這是在Bamboo Stack上運行的rails 3.0.x應用程序,但如果在這些版本中有解決方法/過程,我會升級到rails 3.1和/或雪松堆棧。

關於解決這個問題的其他建議不是「讓寶石變小」,也是非常值得歡迎的。

回答

0

在雪松堆棧上,寶石安裝到您的vendor文件夾中(實際路徑類似於vendor/bundle/ruby/1.9.1/gems/),所以我相信您可以在需要的子路徑中插入副本,儘管我沒有嘗試過。

+0

沒有工作。 .slugignore似乎不是遞歸的。太糟糕了。寶石中有很多不必要的東西,這些東西在slu not中並不需要。 – dsaronin

0

在一般情況下,這將無法正常工作,因爲.slugignore匹配的文件在安裝gem文件之前被刪除。看到下面的heroku部署輸出:

-----> Deleting 2 files matching .slugignore patterns. 
-----> Ruby/Rails app detected 
-----> Installing dependencies using Bundler version 1.3.0.pre.5 
     Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment 
     Using rake (10.0.3) 
     Using Platform (0.4.0) 
     Using open4 (1.3.0) 
     ...