- scala/
- Scala 尝试通过sbt构建项目时,Docker中超出了GC开销限制
Scala 尝试通过sbt构建项目时,Docker中超出了GC开销限制
Scala 尝试通过sbt构建项目时,Docker中超出了GC开销限制,scala,garbage-collection,docker,sbt,boot2docker,Scala,Garbage Collection,Docker,Sbt,Boot2docker,我试图在docker容器内构建sbt项目,并收到以下错误:
java.lang.OutOfMemoryError:超出GC开销限制
系统规格:
OS osx+boot2docker(用于虚拟机的8G RAM)
Ubuntu15.10内置docker容器
Oracle java 1.7或Oracle java 1.8或OpenJdk 1.8
Scala版本2.11.6
sbt版本0.13.8
只有在运行docker时,它才会失败。如果我通过登录到容器来手动执行此操作,它将生成不包含异常的项目
我试图在docker容器内构建sbt项目,并收到以下错误:
java.lang.OutOfMemoryError:超出GC开销限制
系统规格:
- OS osx+boot2docker(用于虚拟机的8G RAM)
- Ubuntu15.10内置docker容器
- Oracle java 1.7或Oracle java 1.8或OpenJdk 1.8
- Scala版本2.11.6
- sbt版本0.13.8
只有在运行docker时,它才会失败。如果我通过登录到容器来手动执行此操作,它将生成不包含异常的项目
OpenJDK 64位服务器VM警告:忽略选项MaxPermSize=1G;支持在8.0中被删除
sbt似乎异常退出。
此会话的日志文件位于/tmp/sbt4972348477806548245.log
java.lang.OutOfMemoryError:超出GC开销限制
位于java.io.UnixFileSystem.resolve(UnixFileSystem.java:108)
位于java.io.File。(File.java:262)
位于java.io.File.listFiles(File.java:1290)
在sbt.FilterFiles.handleFile(Path.scala:192)
在sbt.genderantorselfpathfinder.sbt$genderantorselfpathfinder$$handlefilegender(Path.scala:204)
在sbt.genderantorselfpathfinder$$anonfun$sbt$genderantorselfpathfinder$$handlefilegenderant$1.apply(Path.scala:206)
在sbt.genderantorselfpathfinder$$anonfun$sbt$genderantorselfpathfinder$$handlefilegenderant$1.apply(Path.scala:205)
在scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
位于scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:108)
在sbt.genderantorselfpathfinder.sbt$genderantorselfpathfinder$$handlefilegender(Path.scala:205)
在sbt.genderantorselfpathfinder$$anonfun$sbt$genderantorselfpathfinder$$handlefilegenderant$1.apply(Path.scala:206)
在sbt.genderantorselfpathfinder$$anonfun$sbt$genderantorselfpathfinder$$handlefilegenderant$1.apply(Path.scala:205)
在scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
位于scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:108)
在sbt.genderantorselfpathfinder.sbt$genderantorselfpathfinder$$handlefilegender(Path.scala:205)
在sbt.genderantorselfpathfinder$$anonfun$sbt$genderantorselfpathfinder$$handlefilegenderant$1.apply(Path.scala:206)
在sbt.genderantorselfpathfinder$$anonfun$sbt$genderantorselfpathfinder$$handlefilegenderant$1.apply(Path.scala:205)
在scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
位于scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:108)
在sbt.genderantorselfpathfinder.sbt$genderantorselfpathfinder$$handlefilegender(Path.scala:205)
在sbt.genderantorselfpathfinder$$anonfun$sbt$genderantorselfpathfinder$$handlefilegenderant$1.apply(Path.scala:206)
在sbt.genderantorselfpathfinder$$anonfun$sbt$genderantorselfpathfinder$$handlefilegenderant$1.apply(Path.scala:205)
在scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
位于scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:108)
在sbt.genderantorselfpathfinder.sbt$genderantorselfpathfinder$$handlefilegender(Path.scala:205)
在sbt.genderantorselfpathfinder$$anonfun$sbt$genderantorselfpathfinder$$handlefilegenderant$1.apply(Path.scala:206)
在sbt.genderantorselfpathfinder$$anonfun$sbt$genderantorselfpathfinder$$handlefilegenderant$1.apply(Path.scala:205)
在scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
位于scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:108)
在sbt.genderantorselfpathfinder.sbt$genderantorselfpathfinder$$handlefilegender(Path.scala:205)
在sbt.genderantorselfpathfinder$$anonfun$sbt$genderantorselfpathfinder$$handlefilegenderant$1.apply(Path.scala:206)
在sbt.genderantorselfpathfinder$$anonfun$sbt$genderantorselfpathfinder$$handlefilegenderant$1.apply(Path.scala:205)
sbt执行期间出错:java.lang.OutOfMemoryError:超出GC开销限制
2015/07/15 21:59:19命令“/bin/sh-c/web/tools/bin/sbt compile”返回一个非零代码:1
非常感谢您的帮助!!1问题在于sbt设置USER someuser
,然后在此用户下运行sbt clean
。解决方案是运行sbt clean
w/next命令runuser-lsomeuser-c'sbt clean
是:
成为:
runuser -l someuser -c 'sbt clean'
您可以添加复制程序或共享Dockerfile吗?不幸的是,没有,有很多DEP受公司保护。很遗憾,这是一个有趣的问题,请检查Xmx(最大堆大小)的值是多少?尝试strace docker build.
并查找不带munmap的mmap或大量参数始终增加的brk。我在sbt中遇到了这个问题。我不知道为什么你的修复工作,或者更具体地说,为什么用户不工作。欢迎任何解释
runuser -l someuser -c 'sbt clean'