Maison > Questions et réponses > le corps du texte
Le projet s'exécute sous Docker, et maintenant il y a une exigence pour crontab. Je souhaite ajouter crontab sous Docker, mais je trouve qu'il ne peut pas être ajouté. Comment les experts qui utilisent Docker ajoutent-ils leur propre crontab sous Docker ?
Le projet utilise docker-compose 2.0
Le système est équipé d'ubuntu
Le langage est php7
怪我咯2017-05-24 11:34:55
Mon approche :
1, installez crontab
2 dans Dockerfile et mappez-le avec le fichier volume
把本地的 etc/crontab
. Bien sûr, vous pouvez également l'écrire directement dans le Dockerfile
3, et utiliser le superviseur pour démarrer l'application principale et la crontab
En fait, utiliser crontab n'est rien d'autre que : l'installation, la configuration et le démarrage. Les deux premières étapes sont écrites directement dans le Dockerfile lors de la construction. La clé est de savoir comment démarrer, car Docker n'accepte qu'un seul CMD et ne peut pas démarrer l'application principale et crontab en même temps.
PHPz2017-05-24 11:34:55
1.Dockerfile est le suivant
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
Vous pouvez ajouter à docker-compose pour construire
2. Vous pouvez utiliser d'autres scripts pour écrire un programme démon afin de simuler l'implémentation de crontab
3. Implémentez-le sur l'hôte (non recommandé)