【问题标题】:SBT: Slow resolution and failures when doing builds within Docker containersSBT:在 Docker 容器中进行构建时解决缓慢且失败
【发布时间】:2016-04-27 18:57:28
【问题描述】:

我有一个简单的游戏! 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 distsbt distactivator stage 命令构建此应用程序的可执行文件。

当我在我的计算机上运行时,上述所有功能都完美无缺。但是,当我在 docker 容器中运行完全相同的命令时,我注意到了;

  • SBT 需要很长时间来解决依赖关系,它进行得很慢 通过依赖项列表。
  • 构建失败并出现以下情况: sbt.ResolveException: download failed: org.scalaz#scalaz-core_2.10;7.0.2!scalaz-core_2.10.jar(bundle)

我怀疑这是与 SBT 或特定于 Docker 容器有关的错误。 有人见过这个吗?

【问题讨论】:

  • 你使用的是哪个 sbt 版本?哪个激活器版本?
  • 另外,它可以在 docker 之外工作吗?
  • @marcospereira 感谢您抽出宝贵时间回复此问题,但这是 sbt about 从 docker 容器内输出的内容:Detected sbt version 0.13.8 Cannot find sbt launcher 0.13.8 Please download: From 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 是的,它确实可以在 docker 之外完美运行。跨度>
  • @mixel 不,我没有。
  • 我不知道这些是否可能是这背后的原因? gist.github.com/asheshambasta/b669f6901c26e8a5aa18c7f8e5d18cf8

标签: scala playframework docker sbt


【解决方案1】:

Mounting the .ivy2 and .sbt directories in the container 显着提高编译速度:

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

【讨论】:

  • 感谢您的回答——但这不是一个可行的选择,因为这不适用于自动构建。
猜你喜欢
  • 1970-01-01
  • 2017-01-30
  • 2021-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-19
  • 2019-07-12
  • 2021-12-03
相关资源
最近更新 更多