Heim > Fragen und Antworten > Hauptteil
Das Projekt läuft unter Docker, und jetzt ist Crontab erforderlich. Ich möchte Crontab unter Docker hinzufügen, finde aber, dass es nicht hinzugefügt werden kann. Wie fügen die Experten, die Docker verwenden, ihre eigene Crontab unter Docker hinzu?
Das Projekt verwendet Docker-Compose 2.0
Das System ist mit Ubuntu ausgestattet
Die Sprache ist PHP7
怪我咯2017-05-24 11:34:55
我的做法:
1,Dockerfile 里安装 crontab
2,用 volume
把本地的 etc/crontab
文件映射进去。当然也可以在 Dockerfile 里直接写进去
3,用 supervisor 启动主应用和 crontab
其实使用 crontab 无非就是:安装,配置,启动。前两步直接写在 Dockerfile 中 build 时就做好了。关键是如何启动,因为 Docker 只接受一个 CMD,没法同时启动主应用和 crontab,用 supervisor 就可以了。
PHPz2017-05-24 11:34:55
1.Dockerfile如下
FROM centos
MAINTAINER zhaojunlike<zhaojunlike@gmail.com>
ADD ./crond/task.sh /server/task.sh
##安装并添加任务到crontab
RUN yum install crontabs -y \
&& (crontab -l; echo "*/1 * * * * /server/task.sh >>/var/log/task.log" ) | crontab
CMD crond
你可以添加到docker-compose进行构建
2.可以使用其他脚本写一个daemon程序,去模拟crontab实现
3.宿主机去实现(不推荐)