【发布时间】:2016-04-23 22:12:21
【问题描述】:
我希望创建一个内置多个 SBT 组件的 docker 镜像(docker 部分不相关)。如果我只是从 deb 或 rpm 安装 sbt 而没有做任何事情,那么第一次调用它时仍然需要下载互联网才能启动。
因此,我需要能够指定以下内容:
1 SBT 版本 - 例如0.12, 0.13.1, 0.13.2, ...
2 个 Scala 版本 - 2.9.1、2.10.4、2.11.5、...
3 常用库-play框架等
我想知道确保这些已预先缓存的最佳方法是什么。
【问题讨论】:
-
即使有了答案,我仍然对你在做什么感到困惑。为什么在 docker 镜像上需要
sbt?当您在项目外执行 sbt 时,它将下载默认依赖项以运行(您实际上安装了sbt-launcher,它将启动sbt)。您需要sbt来处理项目之外的任何事情吗? -
我正在为自定义部署
drone.io构建映像。使用带有 sbt 的无人机的默认图像可以正常工作,但由于它获取当前使用的sbt的版本、scala 版本和依赖项,因此需要很长时间来构建。我希望大大减少这个。 -
Scala 及其与 Docker 生态系统交互的方式存在问题。 Scala 希望 SBT 进行构建/运行。缓慢的构建和大量的依赖是有问题的。