@keyon.brown
Для создания связки PHP и Cron в Docker-контейнере вы можете использовать следующую конфигурацию:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
FROM php:latest # Установка необходимых пакетов RUN apt-get update && apt-get install -y cron # Копирование кронтаба в контейнер COPY crontab /etc/cron.d/crontab # Добавление прав на выполнение крон-задач RUN chmod 0644 /etc/cron.d/crontab # Устанавливаем рабочую директорию WORKDIR /var/www/html # Копирование PHP-скриптов в контейнер COPY src/ /var/www/html/ # Запуск крона при запуске контейнера CMD cron && tail -f /dev/null |
1
|
* * * * * root php /var/www/html/script.php >> /var/log/cron.log 2>&1 |
1 2 3 4 |
<?php echo "Hello, World!"; ?> |
Теперь контейнер будет запущен и крон-задача будет выполняться каждую минуту, выводя результаты в файл /var/log/cron.log
. Вы можете изменить расписание и скрипт по своему усмотрению.
Обратите внимание, что в данном примере PHP-скрипт и crontab будут копироваться в контейнер на этапе сборки Docker-образа. Если вы хотите вносить изменения в скрипт или расписание без пересборки образа, вы можете монтировать соответствующие директории при запуске контейнера с помощью флага -v
.