2017-12-20 13 views
0

ドッキングコンテナで実行中のSpring Bootプロジェクトに問題があります。デーモン化された(docker run -d)としてコンテナを実行すると、スケジュールされたタスクが機能しません。バックグラウンドでイメージを実行していないときは、すべてが動作しています。 残念なことに、私はdemonizedとして実行する必要があり、私はどのようにその問題を解決するためのアイデアはありません。 は、すべてのソリューション:)ありがとうございSpring Boot予約済みタスクがドッキングコンテナで動作していません

マイスケジュール注釈:これは私のDockerfile @Scheduled(fixedDelay = 1440000)

です:

FROM java:openjdk-8 
ENV SPRING_PROFILES_ACTIVE dev,docker 
WORKDIR /app 
EXPOSE 9000 9000 
RUN apt-get update && apt-get -y install cron 
RUN service cron start 
COPY build/libs/app.jar /app/app.jar 
CMD ["/bin/sh", "-c", "java -jar /app/app.jar --spring.profiles.active=$SPRING_PROFILES_ACTIVE"] 
+0

両方のシナリオでコンテナを開始するために使用される完全なコマンドで質問を修正できますか?現在の 'Dockerfile'の例では、cronサービスは実際には実行されていません。注釈は、cronではなく、JVM内でスケジュールされて実行されます。この場合、cronは実際には必要ではありません(実際には使用されていないことを確認するために削除します)。 –

答えて

0

あなたは悪魔のようにコンテナを実行すると、あなたが直接出力には表示されませんコンソール。ドッカーログを使用して、何が起こっているかを確認することができます。実際には-dパラメータから独立して動作します。

the minimalistic scheduled example from the spring documentationを画像にラップし、-dで実行してみてください。

docker ps 

を実行して、実行しているコンテナIDを特定し、その後、あなたが期待通りにスケジュールされたタスクが動作することを確認できます

docker logs your-container-id 

を使用してからログを収集します。

関連する問題