2016-01-21 15 views
6

Ho una semplice riproduzione! applicazione con niente di speciale in corso nel build.sbt;SBT: risoluzione lenta e guasti durante l'esecuzione di build all'interno di contenitori 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" 

E all'interno di un Dockerfile che sto cercando di costruire un eseguibile di questa applicazione tramite i comandi activator dist, sbt dist o activator stage.

Tutti i lavori sopra funzionano perfettamente quando lo eseguo sul mio computer. Tuttavia, quando eseguo esattamente gli stessi comandi dall'interno di un contenitore di finestra mobile, noto;

  • SBT impiega molto tempo per risolvere le dipendenze, va molto lentamente attraverso l'elenco delle dipendenze.
  • La build non riesce con il seguente: sbt.ResolveException: download failed: org.scalaz#scalaz-core_2.10;7.0.2!scalaz-core_2.10.jar(bundle)

sto dubitando se questo è un errore che ha a che fare con SBT o qualcosa di specifico per contenitori Docker. Qualcuno ha visto questo prima?

+0

Quale versione sbt stai usando? Quale versione di attivatore? – marcospereira

+0

Funziona anche al di fuori della finestra mobile? – marcospereira

+0

@marcospereira grazie per aver trovato il tempo di rispondere a questo, ma ecco cosa esce "sbt about" dal contenitore docker: 'Rilevata versione sbt 0.13.8 Impossibile trovare sbt launcher 0.13.8 Si prega di scaricare: Da http : //typesafe.artifactoryonline.com/typesafe/ivy-releases/org.scala-sbt/sbt-launch/0.13.8/sbt-launch.jar A /root/.sbt/.lib/0.13.8/sbt -launch.jar' E sì, funziona perfettamente fuori dal docker. – Ashesh

risposta

1

Mounting the .ivy2 and .sbt directories in the container aumentato la velocità di compilazione in modo significativo:

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

Grazie per la risposta, ma questa non è un'opzione praticabile in quanto non funzionerà per le build automatizzate. – Ashesh

+0

Funziona sul mio CI. Hai provato? – 030

+0

Non l'ho provato, no. – Ashesh

Problemi correlati