2013-03-08 10 views
6

Benim app sülük boyutu Heroku 222 mb gösterir. Oldukça büyük ve izin verilen 200MB ötesinde.Heroku Slug boyutu 222 MB/Oynatma Çerçevesi 2.1/

Böylece, bu şeyleri kontrol ettik: 89,9 Mo80,2 Mo uygulamanın hedef klasörü oynamak için geldiğini bilerek:

  • benim kaynak kod boyutunu kontrol edin.

  • Uygulamanın hedef klasörünün iyi bir şekilde hariç tutulduğundan emin olmak için .gitignore dosyanızı kontrol edin. İşte benim .gitignore dosyası:

.DS_Store   
logs 
project/project  
project/target 
target     // target well precised here 
tmp  
.history  
dist  
/.idea  
/*.iml //space here otherwise appears as a comment here  
/out  
/.idea_modules  
/.classpath  
/.project  
/RUNNING_PID  
/.settings 

benim SBT sarmaşık önbellek boyutunu kontrol edin: detaylı olarak 100,9 Mo İşte

(solda) Her klasörün boyutu :

MikaPc. önbellek Mika $ du -xak | sıralama -n | kuyruk -50
1664 ./org.neo4j/neo4j/docs 1664 ./org.neo4j/neo4j/docs/neo4j-1.9.M05-javadoc.jar
1668 ./org.neo4j/neo4j-kernel/docs
1668. /org.neo4j/neo4j-kernel/docs/neo4j-kernel-1.9.M05-javadoc.jar
1680 ./org.springframework/spring-test 1748 ./org.neo4j/neo4j
1752 ./org.aspectj/aspectjweaver/
1752 ./org.aspectj/aspectjweaver/jars/aspectjweaver-1.7.1.jar
1860 ./org.springframework/spring-jdbc kavanoz
1888 ./org.springframework.data/spring-data -
1980./org.scala-sbt/main/jars./org.scala-sbt/main/jars/main-0.12.2.jar
1980 ./org.scala-sbt/main
2100 ./org.springframework/spring-context/docs
2100 ./org.springframework/spring-context/docs/spring-context-3.2.0.RELEASE-javadoc.jar 2104 ./com.sun.jersey 2348 ./org.springframework/spring-core
2356 ./ org.springframework.data/spring-data-neo4j
2776 ./org.apache.lucene/lucene-core ./org.springframework/spring-beans
2800 ./org.springframework/spring-web
2808 ./org.springframework/spring-webmvc
2812 ./org.aspectj/aspectjweaver/docs
2812 ./org.aspectj/aspectjweaver/docs/aspectjweaver-1.7.1-javadoc.jar 2844 ./org .apache.lucene 3016 ./org.springframework/spring-context
4356 ./org.neo4j ./org.neo4j/neo4j-cypher/jars ./org.neo4j/neo4j-kernel/jars /neo4j-cypher/jars/neo4j-cypher-1.9.M05.jar
4436 ./org.specs2/specs2_2.10/docs
4436 ./org.specs2/specs2_2.10/docs/specs2_2.10-1.13 .1-SNAPSHOT-javadoc.jar 4584 ./org.scalaz/scalaz-core_2.10/docs
4584 ./org.scalaz/scalaz-core_2.10/docs/scalaz-core_2.10-7.0-SNAPSHOT-javadoc ./org.springframework.data 6484 ./org.aspectj/aspectjweaver
6024 ./org.neo4j/neo4j-kernel
5936 jar 4824 ./org.neo4j/neo4j-cypher 5712
./org.aspectj 6520 ./org.specs2/specs2_2.10/jars
6812 ./org.scala-sbt 8288
6520 ./org.specs2/specs2_2.10/jars/specs2_2.10-1.13.1-SNAPSHOT.jar ./org.scalaz/scalaz-core_2.10/jars
8288 ./org.scalaz/scalaz-core_2.10/jars/scalaz-core_ 2,10-7,0-SNAPSHOT.jar 11500 ./org.specs2/specs2_2.10 11524 ./org.specs2
13132 ./org.scalaz/scalaz-core_2.10 13140 ./org.scalaz
15832 ./org .neo4j 23500 ./org.springframework
98122.

Benim SBT inşa dosyası aşağıdaki bağımlılıklar içerir:

val appDependencies = Seq(
    jdbc, 
    anorm, 
    "org.springframework" % "spring-aop" % "3.2.0.RELEASE", 
    "org.springframework" % "spring-aspects" % "3.2.0.RELEASE", 
    "org.springframework" % "spring-beans" % "3.2.0.RELEASE", 
    "org.springframework.data" % "spring-data-commons-core" % "1.4.1.RELEASE", 
    "org.springframework" % "spring-expression" % "3.2.0.RELEASE", 
    "org.springframework" % "spring-jdbc" % "3.2.0.RELEASE", 
    "org.springframework" % "spring-orm" % "3.2.0.RELEASE", 
    "org.springframework" % "spring-test" % "3.2.0.RELEASE", 
    "org.springframework" % "spring-tx" % "3.2.0.RELEASE", 
    "org.springframework.data" % "spring-data-neo4j" % "2.2.0.RELEASE" excludeAll(
     ExclusionRule(organization = "com.sun.jdmk"), 
     ExclusionRule(organization = "com.sun.jmx"), 
     ExclusionRule(organization = "javax.jms") 
    ), 
    "org.neo4j" % "neo4j" % "1.9.M05" excludeAll(
     ExclusionRule(organization = "org.neo4j", name="neo4j-kernel") 
    ), 
    "org.neo4j" % "neo4j-kernel" % "1.9.M05" % "test" classifier "tests" classifier "", 
    "asm" % "asm-all" % "3.1", 
    "org.springframework.data" % "spring-data-neo4j-rest" % "2.1.0.RELEASE" excludeAll(
     ExclusionRule(organization = "org.neo4j") 
    ), 
    "org.neo4j" % "neo4j-rest-graphdb" % "1.9.M04", 
    "org.scalaz" %% "scalaz-core" % "7.0-SNAPSHOT" withSources(), 
    "org.specs2" %% "specs2" % "1.13.1-SNAPSHOT" % "test" withSources(), 
    "org.mockito" % "mockito-all" % "1.9.0" %"test", 
    "securesocial" %% "securesocial" % "master-SNAPSHOT" withSources() 
) 

Ben bu büyük sümüklü böcek boyutunu azaltmak için ne yapabilir? Bazı dökümantasyonları ve kavanozları kaldırsam bile, boyut çok büyük olur.

Gerçekten

Tabii ki, ben bu buildpack kullanarak Heroku app oluşturduk .gitignore dosyanın rağmen oyun uygulamanızın hedef klasör .. gönderildiğini görünüyor: Ayrıca https://github.com/heroku/heroku-buildpack-scala

, bir yolu yoktur SBT'de (veya oynatma yapılandırmasında), Specs2 (test) gibi bağımlılıkların korunduğu, Heroku üretim ortamında indirilmemelidir?

Ben Heroku üzerinde itti ne gerçek boyutunu göstermek için aşağıdaki komutu çalıştırın ettik

DÜZENLEME ---------: sıkıştırma önce

MikaPc:wwa Mika$ heroku run bash  
Running `bash` attached to terminal... up, run.9266   
~ $ du -h --apparent-size --max-depth 2  
5.3K ./test/resources   
12K ./test/unit   
5.6K ./test/functional   
6.5K ./test/context   
8.5K ./test/acceptance   
5.2K ./test/integration   
47K ./test   
5.0K ./app/helpers   
33K ./app/controllers   
11K ./app/models   
161K ./app/assets   
34K ./app/views   
8.0K ./app/applicationservices   
5.0K ./app/repositories   
20K ./app/utils   
281K ./app    
8.7M ./target/scala-2.10   
1.4M ./target/resolution-cache   
143K ./target/streams    
60M ./target/staged   
71M ./target   
1.1M ./.sbt_home/bin   
834K ./.sbt_home/.sbt   
1.9M ./.sbt_home   
30K ./public/images    
171K ./public/javascripts   
9.6K ./public/stylesheets   
214K ./public   
4.0K ./.ivy2/cache   
8.0K ./.ivy2   
1.1M ./.jdk/bin   
19M ./.jdk/lib   
203K ./.jdk/include   
227M ./.jdk/jre   
247M ./.jdk    
2.8M ./project/target   
20K ./project/project    
53M ./project/boot   
56M ./project   
12K ./conf   
375M .   

375 Mo 222Mo'ya kadar bitebildiğimi hayal ediyorum .. hum

Ve kazanan: 227M ./.jdk/jre sülük boyutunun bir parçası. Bu normal mi?

cevap

6

Heroku, uygulamanızla birlikte uyguladığımız JDK'nın nasıl yapılandırıldığını yakın zamanda değiştirdi. Şimdi daha öncekinden daha büyük. Ayrıca, sülük boyutu sınırını da artırdık. Bu, uygulamanızı, sürümleri biraz yavaşlatmaktan başka bir şekilde engellemeyecek.

Güncel güncel sınırlara uyacak şekilde güncellenmiş belgeleri edineceğiz.

+0

Understood :) Çok teşekkürler! – Mik378

+0

Güncellenen dokümanlar için bekliyorum. – adib

+0

@adib Neler gerçekleşti, paketlenmiş JDK'nın boyutunu azaltmanın bir yolunu bulmamız oldu. Yeni sürümleri zorlarken büyük ölçüde azaltılmış sülük görmeniz gerekir. Değilse, lütfen Heroku desteği ile iletişime geçin. – friism