如何在php-fpm-alpine docker容器中运行cron作业?

时间:2018-12-28 14:18:39

标签: php docker cron alpine fpm

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

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

但这覆盖了CMD,我不知道保持php-fpm正常运行

1 个答案:

答案 0 :(得分:2)

当您需要在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

请注意,最好配置超级用户以将日志输出到 / dev / stdout / dev / stderr ,以允许Docker处理这些日志。否则,随着文件写入量的增加,容器会随着时间的流逝而变慢。