在Docker容器中运行预定的cron作业的解决scheme?

我有一个Docker容器,我已经安装了我的Python工具,包括我的Luigipipe道接口。 我想运行一个shell脚本,每周使用cron启动我的Luigipipe道。

我已经尝试过让cron在Docker容器中工作。 我不能,对我来说,让我的crontab -e文件运行。

在我的文件中我有:

0 0 * * Sun /data/myscript.sh

接着是新的一行。 Cron在后台运行 – ps aux | grep cron ps aux | grep cron显示/usr/sbin/cron正在运行。 而且,在我的/var/log/syslog文件中,我有:

/USR/SBIN/CRON[2037]: (root) CMD (/data/myscript.sh)

我也试过使用0 0 * * Sun . /root/.bashrc ; sh /data/myscript.sh 0 0 * * Sun . /root/.bashrc ; sh /data/myscript.sh

但是,我的脚本不运行(当我运行我的脚本手动使用bash myscript.sh ,我得到预期的结果)。

build议?

计划任务不会在正常容器内运行,因为没有计划程序正在运行。 唯一有效的任务是通过CMD关键字或入口点select运行的任务。

为了执行计划任务,使用主机调度程序和docker exec命令更为谨慎:

 docker exec <container> <command> docker exec <container> /data/myscript.sh 

所以你最终会在你的主机上有一个cron,像这样:

(Crontab样式)0 * * * * root docker exec mycontainer /data/myscript.sh

如果你有一个集群,你将不得不首先查询集群来find容器,甚至有一个脚本为你做。

Interesting Posts