2017-02-25 2 views
0

私はPlayで作業中です! Angular 2とwebjarsの依存関係を持つアプリケーションです。 SBTプレイプラグインとタイスクリプトプラグイン。増分コンパイルを使用しますが、再コンパイルするたびに時間がかかります。どのタスクが最長のタスクかをチェックするために "sbt-optimizer"を設定しました。そして私は各再コンパイル時に、WebJarsがほぼすべての再コンパイル時間を取っていることを確認します。最初のコンパイル後に静的ファイルを使って何かをする必要があるのは想像もできません。しかし、たとえ私がscalaファイルやtwirlテンプレートを変更しても、すべてのwebjarsを再び問題にすることはありません。Docker内のWebJarsを使用したSBTインクリメンタルコンパイル

UPD: Dockerを使用しないマシンで実行した場合、速度は正常です。再コンパイルには数秒かかります。 ドッカー内部 - 200秒以上。

docker - 2sなしのコンパイルメッセージ、docker - 13s内。 ドッカーなしの画面での操作ドッカー内の10-300ms 500-60000ms。

UPD: は

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がその都度行う理由は、 enter image description here

は私が何かを逃してもよく、または誰かがこのような問題があったが、どうすればこれを防ぐことができますか?

あなたがMac用ドッカーにマウントされたボリュームを実行している場合、あなたはおそらくマウントされたボリュームのパフォーマンスでthis issueを打っているあなたに

+0

私はDockerコンテナ内で実行していますので、以前はVagrantでライブリフレッシュに問題がありました。そして今、ドッカーのコンテナは非常にゆっくりとリロードします。 バージョン: SBT 0.13.13 再生2.5.12 –

+0

ドッカーなしで実行すると、リロードに数秒かかります。 Dockerコンテナの内部には200秒かかります。両方の実行でメモリとCPU使用率がかなり似ています。 しかし、同じ操作の時間は、ドッカー500-60000msの間は、画面10-300msのようになります。 –

答えて

1

ありがとうございます。

+0

非常に大きな感謝!!!問題はIO操作であると私は考えていました。それを深くは見ていないが、あなたが正しいように見える。 –

関連する問題