使用 docker 的简单 cron 作业无法正确运行

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

我编写了这个可重现的存储库来使用 docker 运行 cron 作业。使用命令

docker compose build && docker compose up
运行它。它会自行重新启动,并且不会按预期每分钟打印“Hello world”。

https://github.com/brunolnetto/cron-docker

谢谢所有的鱼!

docker cron
1个回答
0
投票

您遇到的第一个问题是,要保持

cron
命令运行,您应该添加
-f
选项。但是当你这样做时,会发生一些奇怪的事情,它假设
crond
守护进程正在运行,并尝试使用
/var/run/crond.pid
查找它的 PID。 crond 未运行,因此
cron
命令失败。

这可能与您将配置文件标记为可执行文件有关,即使它不是脚本。

摆弄你的 Dockerfile 后,我制作了这个可以运行的 Dockerfile。

FROM ubuntu:latest
WORKDIR /app
RUN apt-get update && apt-get -y install cron
RUN echo '* * * * * echo "Hello world" >> /var/log/cron.log 2>&1' > cron-config
RUN crontab cron-config
RUN touch /var/log/cron.log
CMD cron -f
© www.soinside.com 2019 - 2024. All rights reserved.