【发布时间】: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
您好,我不知道如何在 this 容器中运行 cron 作业。
我发现了这个:How to run a cron job inside a docker container
但这会覆盖 CMD,我不知道如何保持 php-fpm 正常工作
【问题讨论】:
标签: php docker cron alpine fpm
当您需要在 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 处理这些日志。否则,随着文件写入量的增加,您的容器可能会随着时间的推移而变慢。
【讨论】: