2016-01-21 2 views
6

У меня есть простая игра! приложение не имеет особого значения в build.sbt;SBT: Медленное разрешение и сбои при сборке в контейнерах Docker

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.

Все вышеизложенное работает безупречно, когда я запускаю его на своем компьютере. Однако, когда я запускаю точно такие же команды из контейнера докеров, я замечаю;

  • SBT занимает очень много времени, чтобы разрешать зависимости, он идет очень медленно через список зависимостей.
  • Билд терпит неудачу со следующим: sbt.ResolveException: download failed: org.scalaz#scalaz-core_2.10;7.0.2!scalaz-core_2.10.jar(bundle)

Я сомневающийся, если это ошибка, которая имеет дело с SBT или что-то конкретное для контейнеров Докер. Кто-нибудь видел это раньше?

+0

Какая версия SBT вы используете? Какая версия активатора? – marcospereira

+0

Кроме того, он работает вне докеров? – marcospereira

+0

@marcospereira спасибо за то, что нашли время, чтобы ответить на это, но вот что выводит «sbt about» из контейнера докера: «Обнаружена версия sbt 0.13.8 Не удается найти sbt launcher 0.13.8 Загрузите: С http : //typesafe.artifactoryonline.com/typesafe/ivy-releases/org.scala-sbt/sbt-launch/0.13.8/sbt-launch.jar To /root/.sbt/.lib/0.13.8/sbt -launch.jar' И да, он работает вне докеров безупречно. – Ashesh

ответ

1

Mounting the .ivy2 and .sbt directories in the container увеличил скорость значительно компилирования:

-v ~/.sbt:/root/.sbt -v ~/.ivy2:/root/.ivy2 
+0

Спасибо за ответ - но это не жизнеспособный вариант, так как это не будет работать для автоматизированных сборок. – Ashesh

+0

Это работает на моем CI. Вы попробовали? – 030

+0

Я не пробовал, нет. – Ashesh

Смежные вопросы