【问题标题】:How to run cron jobs inside php-fpm-alpine docker container?如何在 php-fpm-alpine docker 容器中运行 cron 作业?
【发布时间】:2019-05-26 08:41:47
【问题描述】:

您好,我不知道如何在 this 容器中运行 cron 作业。

我发现了这个:How to run a cron job inside a docker container

但这会覆盖 CMD,我不知道如何保持 php-fpm 正常工作

【问题讨论】:

    标签: php docker cron alpine fpm


    【解决方案1】:

    当您需要在 docker 容器中运行多个进程时,一个解决方案是使用 supervisord 作为主要指令。 Docker 将启动并监控 supervisord,这反过来又会启动您的其他进程。

    Docker 文件示例:

    FROM debian:9
    ...
    CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/my.conf"]
    

    Supervisord 配置示例 (/etc/supervisor/my.conf):

    [supervisord]
    nodaemon=true
    
    [program:cron]
    command=/usr/sbin/crond -f -l 8
    stdout_logfile=/dev/stdout
    stderr_logfile=/dev/stderr
    stdout_logfile_maxbytes=0
    stderr_logfile_maxbytes=0
    autorestart=true
    
    [program:php-fpm]
    command=docker-php-entrypoint php-fpm
    

    请注意,最好将 supervisord 配置为将日志输出到 /dev/stdout/dev/stderr 以允许 docker 处理这些日志。否则,随着文件写入量的增加,您的容器可能会随着时间的推移而变慢。

    【讨论】:

      猜你喜欢
      • 2016-08-29
      • 2016-09-24
      相关资源
      最近更新 更多