我想用sbt构建一个docker镜像。
这是我所拥有的:
FROM kondaurov/jdk-alpine:jdk8slim
ENV SBT_VERSION=1.2.1
RUN \
echo "$SBT_VERSION" && \
curl -fsL https://github.com/sbt/sbt/releases/download/v${SBT_VERSION}/sbt-${SBT_VERSION}.tgz | tar xfz - -C /usr/local && \
ln -s /usr/local/sbt/bin/* /usr/local/bin/ && \
sbt sbtVersion
ENTRYPOINT sbt
当我在我的scala项目中使用此图像时,我得到了:
[warn] Run 'evicted' to see detailed eviction warnings
[info] Compiling 4 Scala sources to /sbt_project/project/target/scala-2.12/sbt-1.0/classes ...
[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.6. Compiling...
[info] Compilation completed in 53.746s.
如您所见,sbt总是为scala编译编译器桥,这需要一些时间。.是否可以在我的映像中编译桥?我猜 sbt sbtVersion 还不够
答案 0 :(得分:1)
它是在第一次编译时触发的,因此您可以将sbt sbtVersion
行更改为sbt compile
。您很有可能需要在工作目录中添加一个简单的Scala源文件以触发编译(然后清除产生的输出)。
您还可以设置特定的Scala版本,而无需创建build.sbt
:
sbt 'set scalaVersion := "2.11.8"' compile
甚至几个:
sbt 'set crossScalaVersions := Seq("2.11.8", "2.12.6")' '+compile'