Maison  >  Questions et réponses  >  le corps du texte

dcoker-compose - Comment exécuter crontab sous docker

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

習慣沉默習慣沉默2677 Il y a quelques jours991

répondre à tous(2)je répondrai

  • 怪我咯

    怪我咯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.

    répondre
    0
  • PHPz

    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é)

    répondre
    0
  • Annulerrépondre