从 docker 堆栈运行 cron 作业的最佳实践

Posted

技术标签:

【中文标题】从 docker 堆栈运行 cron 作业的最佳实践【英文标题】:Best practices to run cron job from a docker stack 【发布时间】:2018-10-04 04:19:20 【问题描述】:

事情是这样的:我有一个堆栈,其中节点 js 后端将消息发送到队列,perl 工作人员(cron 作业)使用来自该队列的消息。我已经“dockerized”了节点 js 后端,但现在我正在尝试对 Perl Workers 做同样的事情。

然而,Perl 应用程序本身已经 dockerized,因为队列中的“作业”是基于 crontab(即每 2 分钟)消耗的,我的问题是:

从 docker-compose 文件构建堆栈时,最好的方法是什么?

如果我应该提供更多详细信息,请告诉我。谢谢!

【问题讨论】:

看看这个:***.com/questions/37458287/… 它还在容器内启动一个 cron 作业。 【参考方案1】:

我在How to run a cron job inside a docker container? 的帮助下解决了这个问题,但是我必须添加以下行:

运行 crontab /etc/cron.d/crontab

这基本上从指定文件加载 crontab 数据。如果我没有那样做,cron 守护进程永远不会启动。

希望这会有所帮助,但仍不清楚这是否是最好的方法。

【讨论】:

在扩展应用程序时,请考虑在容器外部调用 cron(如在 k8s 中)。扩展容器时,Cron 作业可能会重叠。

以上是关于从 docker 堆栈运行 cron 作业的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章

每 30 秒运行一次 cron 作业的最佳方式是啥? [复制]

如何在 docker 容器中运行 cron 作业

Docker 并行运行 cron 作业

在 docker 中运行 cron python 作业

cron 作业未在 ubuntu 上的 docker 容器内运行

在我在docker容器中重新保存cron文件之前,Cron作业不起作用