SBT:在Docker容器中构build时parsing速度慢,失败
我有一个简单的播放! 在build.sbt
没有什么特别的应用程序;
name := """project-name""" version := "1.0-SNAPSHOT" lazy val root = (project in file(".")).enablePlugins(PlayScala) scalaVersion := "2.11.6" libraryDependencies ++= Seq( jdbc, javaJdbc, javaEbean, "mysql" % "mysql-connector-java" % "5.1.38", cache, ws, "com.googlecode.libphonenumber" % "libphonenumber" % "7.1.0" ) // string metrics libraryDependencies += "com.rockymadden.stringmetric" %% "stringmetric-core" % "0.27.4" resolvers += "scalaz-bintray" at "http://dl.bintray.com/scalaz/releases"
而在一个Dockerfile
我试图通过activator dist
, sbt dist
或activator stage
命令构build这个应用程序的可执行文件。
当我在电脑上运行它时,上述所有工作都完美无瑕。 但是,当我在Docker容器中运行完全相同的命令时,我注意到了;
- SBT花费很长时间来解决依赖关系,它通过依赖关系列表非常缓慢。
- 构build失败,出现以下:
sbt.ResolveException: download failed: org.scalaz#scalaz-core_2.10;7.0.2!scalaz-core_2.10.jar(bundle)
我怀疑这是否与SBT或Docker容器特有的错误有关。 有没有人见过这个?
在容器中安装.ivy2
和.sbt
目录显着提高了编译速度:
-v ~/.sbt:/root/.sbt -v ~/.ivy2:/root/.ivy2