内部带有 WebJars 的 SBT 增量编译 Docker
SBT incremental compilation with WebJars inside Docker
我正在开发 Play!具有 Angular 2 和 webjars 依赖项的应用程序。
SBT 播放插件和打字稿插件。我使用增量编译,但每次重新编译都会花费大量时间。我设置 "sbt-optimizer" 来检查哪些任务最长。我看到在每次重新编译时,WebJars 都占用了几乎所有的重新编译时间。我无法想象为什么他需要在第一次编译后对静态文件做些什么。但即使我更改了 scala 文件或 twirl 模板,所有 webjars 都没有关系。
更新:
如果我在没有 Docker 的机器上 运行 那么速度是正常的 - 重新编译需要几秒钟。
里面 Docker - 200 秒+。
编译消息没有 docker - 2s,内部 docker - 13s。
屏幕上的操作没有 docker 10-300ms inside docker 500-60000ms.
更新:
添加我的 docker 文件
FROM openjdk:8
ENV SCALA_VERSION=2.12.1
ENV SBT_VERSION=0.13.13
ENV NODEJS_VERSION=6.10.0
# Install sbt
RUN cd /tmp && \
wget https://dl.bintray.com/sbt/native-packages/sbt/$SBT_VERSION/sbt-$SBT_VERSION.zip && \
unzip sbt-$SBT_VERSION.zip -d /usr/local && \
rm sbt-$SBT_VERSION.zip
#install nodejs for web jars
RUN cd /tmp && \
wget https://nodejs.org/dist/v$NODEJS_VERSION/node-v$NODEJS_VERSION-linux-x64.tar.xz && \
tar -C /usr/local --strip-components 1 -xJf node-v$NODEJS_VERSION-linux-x64.tar.xz &&
rm node-v$NODEJS_VERSION-linux-x64.tar.xz
这是优化器的打印输出:
可能是我遗漏了什么,或者有人遇到过这样的问题,为什么 SBT 每次都这样做,我该如何预防?
谢谢
如果您 运行 在 Docker 上挂载卷 Mac,您的挂载卷性能可能达到 this issue。
我正在开发 Play!具有 Angular 2 和 webjars 依赖项的应用程序。 SBT 播放插件和打字稿插件。我使用增量编译,但每次重新编译都会花费大量时间。我设置 "sbt-optimizer" 来检查哪些任务最长。我看到在每次重新编译时,WebJars 都占用了几乎所有的重新编译时间。我无法想象为什么他需要在第一次编译后对静态文件做些什么。但即使我更改了 scala 文件或 twirl 模板,所有 webjars 都没有关系。
更新: 如果我在没有 Docker 的机器上 运行 那么速度是正常的 - 重新编译需要几秒钟。 里面 Docker - 200 秒+。
编译消息没有 docker - 2s,内部 docker - 13s。 屏幕上的操作没有 docker 10-300ms inside docker 500-60000ms.
更新: 添加我的 docker 文件
FROM openjdk:8
ENV SCALA_VERSION=2.12.1
ENV SBT_VERSION=0.13.13
ENV NODEJS_VERSION=6.10.0
# Install sbt
RUN cd /tmp && \
wget https://dl.bintray.com/sbt/native-packages/sbt/$SBT_VERSION/sbt-$SBT_VERSION.zip && \
unzip sbt-$SBT_VERSION.zip -d /usr/local && \
rm sbt-$SBT_VERSION.zip
#install nodejs for web jars
RUN cd /tmp && \
wget https://nodejs.org/dist/v$NODEJS_VERSION/node-v$NODEJS_VERSION-linux-x64.tar.xz && \
tar -C /usr/local --strip-components 1 -xJf node-v$NODEJS_VERSION-linux-x64.tar.xz &&
rm node-v$NODEJS_VERSION-linux-x64.tar.xz
这是优化器的打印输出:
可能是我遗漏了什么,或者有人遇到过这样的问题,为什么 SBT 每次都这样做,我该如何预防?
谢谢
如果您 运行 在 Docker 上挂载卷 Mac,您的挂载卷性能可能达到 this issue。