gpt4 book ai didi

linux - 在 Docker 容器中运行计划的 cron 作业的解决方案?

转载 作者:IT王子 更新时间:2023-10-29 01:04:59 26 4
gpt4 key购买 nike

我有一个 Docker 容器,其中安装了我的 Python 工具,包括我的 Luigi 管道接口(interface)。我想运行一个 shell 脚本,每周使用 cron 启动我的 Luigi 管道。

我尝试了很多方法来让 cron 在 Docker 容器中工作。我这辈子都无法运行我的 crontab -e 文件。

在我的文件中我有:

0 0 * * Sun/data/myscript.sh

后跟一个新行。 Cron 在后台运行 - ps aux | grep cron 显示 /usr/sbin/cron 正在运行。此外,在我的 /var/log/syslog 文件中,我有:

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

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

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

建议?

最佳答案

计划任务不会在普通容器内运行,因为没有运行的调度程序。唯一的事件任务将是您选择通过 CMD 关键字或入口点运行的任务。

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

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

所以你最终会在你的主机上有一个 cron,比如:

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

如果你有一个集群,你必须先查询集群来定位容器,或者甚至让脚本为你做这件事。

关于linux - 在 Docker 容器中运行计划的 cron 作业的解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40939772/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com