问题: 对于一些 php 的脚本, 之前在宿主机上使用 crontab 来周期性执行, 如果改成了 docker 容器, 这些脚本该如何处理, 毕竟 php 解释器在容器里面了. 有没有什么好的方式处理呢?
1
chenhua19940128 81 天前
一样的,在宿主机上使用 crontab ,然后通过 docker exec 来执行 docker 里的命令行
|
2
brader 81 天前
有,使用 ofelia 秒级定时器,可替代 crontab ,能和 docker 容器更方便的交互,https://github.com/mcuadros/ofelia
还可以参考我的 docker 项目 https://github.com/wenshunbiao/docker/tree/master/ofelia ,看我是如何使用它的 |
5
skyrim61 OP 感谢感谢.
|
6
pota 81 天前
我现在线上方案用了两种,一种是单开一个容器来跑定时任务。一种是宿主机 exec 进行调用。不过考虑到稳定。目前都用单独容器来处理了
|
8
concernedz 81 天前
1panel 部署就是用 docker exec 的方法
|
10
ety001 81 天前
除了上面提到的在宿主机的方案,还可以在容器内安装 supervisor ,crontab ,把 supervisor 作为容器的运行程序,然后 php 和 crontab 两个服务都由 supervisor 来管理。这个方案的优势在于 crontab 的配置是跟 docker 镜像下发的,不需要额外再登陆宿主机进行额外配置。
|
11
ysc3839 81 天前
用 busybox crond 不就好了?
https://gist.github.com/andyshinn/3ae01fa13cb64c9d36e7 |
12
Twnysta 81 天前
#!/bin/sh
rm -rf /etc/default/locale && env >> /etc/default/locale && crontab /var/spool/cron/crontabs/root && cron -f 启动命令执行一个 sh 文件,定时任务单独一个容器 |
13
skyrim61 OP 目前的任务计划不多, 不到 100 个, 倾向先用 docker exec 在 crontab 中运行, 先看看效果
|