Как запускать задания cron внутри док-контейнера php-fpm-alpine?

Привет, я не знаю, как запустить задание cron внутри этот контейнер.

Я нашел это: Как запустить задание cron внутри докер-контейнера

Но это переопределяет CMD, я не знаю, как поддерживать работу php-fpm.


person Pedro Brost    schedule 28.12.2018    source источник


Ответы (1)


Если вам нужно запустить несколько процессов в контейнере Docker, решение состоит в том, чтобы использовать supervisord в качестве основной инструкции. Docker запустит и будет контролировать supervisord, который, в свою очередь, запустит другие ваши процессы.

Пример файла докера:

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

Пример конфигурации супервизора (/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 обрабатывать эти журналы. В противном случае вы рискуете, что ваш контейнер со временем замедлится по мере увеличения количества записываемых файлов.

person Mark    schedule 28.12.2018