Spring Boot计划任务无法在docker容器上运行

问题描述 投票:0回答:1

我的Spring Boot项目在docker容器上运行时遇到问题。如果我将容器作为妖魔化(docker run -d)运行,则计划任务不起作用。当我在后台运行非图像时,一切正常。不幸的是,我必须像妖魔一样运行它,我不知道如何解决这个问题。谢谢你的任何解决方案:)

我的预定注释:@Scheduled(fixedDelay = 1440000)

这是我的Dockerfile:

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"]
java spring docker scheduled-tasks
1个回答
0
投票

当您将容器作为恶魔运行时,您将无法直接在控制台中看到输出。您可以使用docker日志来检查发生了什么。事实上,它独立于-d参数。

尝试将the minimalistic scheduled example from the spring documentation包装成图像并使用-d运行它。

通过运行识别正在运行的容器ID

docker ps 

然后从使用中收集日志

docker logs your-container-id

您将看到计划任务按预期工作。

© www.soinside.com 2019 - 2024. All rights reserved.