2012-09-15 18 views
6

Heroku'ya giden oldukça büyük bir uygulamamız var. Bu, browsercms'i temel olarak kullanan bir uygulama. Gemfile o kadar büyük değil (ortalama uygulamamızdan daha fazla taşımız yok), ancak bazı nedenlerle konuşlandırma 15 dakika sürüyor. Derleme ve (assetsync yoluyla) tüm varlıklara yaklaşık 5 dakika yüzünden sürer s3 için varlıklarını iterek, ancak geri kalan 10 dakika bu sırasında harcanmaktadır:heroku konuşlandırılıyor çok uzun sürüyor

----> Heroku receiving push 
-----> Removing .DS_Store files 
-----> Ruby/Rails app detected 
-----> Using Ruby version: ruby-1.9.3 
-----> Installing dependencies using Bundler version 1.2.0 
     Running: bundle install --without development:test --path vendor/bundle --binstubs bin/ --deployment 

herkes bu kısmı pek uzun sürüyor neden herhangi bir ipucu var? gemfile kilit repo ve Heroku aktarıldığı ve burada bizim gemfile bir özü var: https://gist.github.com/aa44bbb06eed97736c20

DÜZENLEME: Biz raylar

+0

Mücevherlerinizi satmayı denediniz mi? İndirilen '.gem' dosyalarını önbelleğe almak için' bundle package'ı kullanmayı deneyin ve 'git eklentisini çalıştırın. && git commit -m "Gems 'deki satıcıyı depoya eklemeniz için. Gem yüklemesini hemen yapmalıyız (bu durum darboğaz olduğunu varsayar.) – neersighted

+1

Aynı zamanda varlık derleme aşaması da olabilir, bu durumda çalıştırmak isteyebilirsiniz 'rake varlıkları: precompile && git commit -a -m "Her dağıtımdan önce varlıkları yeniden derleyin." – neersighted

+0

Mücevherleri satmak, bir smidgen'e yardım etti ... ve yerel olarak ön hazırlık yapmak gerçekten zaman kazanmıyordu - yaklaşık olarak bu kadar uzun sürdü. – courtsimas

cevap

2

3.2.7 konum bundler bir git repo olan bir mücevher kullandığında gem, sadece ana dal değil veya şube ne olursa olsun ana dalı dahil etmek için git repo'yu indirecek.

Biz sferik tarafından rails_admin gem ile aynı sorunu vardı.

O kudreti bu kadar gibi belirli bir dalı belirtirseniz yardım: anlatmak için

gem "browsercms", "3.5.3", git: 'git://github.com/josiahivey/browsercms.git', :branch => 'master' 

bir yolu Eğer bir değişiklik yapmadan önce ve sonra derlenen sülük boyutuna bakmaktır. Bizim durumumuzda, sülük boyutunun yaklaşık 30mb'ından rails_admin sorumluydu. Heroku'nun 100MB'lik bir sülük boyutu sınırı var, sadece FYI.

Ayrıca böyle bundle paketi komutunu çalıştırmayı deneyin olabilir:

bundle pack --all 

Bu satıcı/cache dizine (çünkü --all anahtarının da sözde git olanlar) tüm taşlar koyacağız . bundler projesi için bu github isssue belirtildiği gibi

(a Heroku adam cevap verir ucunda, bakabilirsiniz):

https://github.com/carlhuda/bundler/issues/67

+0

Şube en az bir çift mega kaydetti.Şu anda 55 meg büyüklüğünde bir sümük boyutuna sahibiz (bunun birçoğu browsercms). – courtsimas

0

İki şey bu süreci hızlandırdı. Bundler 1.2.1 yardımcı görünüyordu ve turbo sprockets iyi bir kaç dakika kazandı. Şimdi tolere edilebilir.