IsaevDimka
@IsaevDimka
маркетёр-аналитик, веб-разработчик

Почему не работает crontab в docker Laravel?

Есть задание в crontab:
* * * * * php /var/www/site.ru/artisan schedule:run >>/dev/null 2>&1

При запуске через команду
php /var/www/site.ru/artisan schedule:run >>/dev/null 2>&1


Причем в /var/log/syslog задание логируется, но в Laravel не срабатывает.
  • Вопрос задан
  • 658 просмотров
Решения вопроса 1
IsaevDimka
@IsaevDimka Автор вопроса
маркетёр-аналитик, веб-разработчик
получилось с командой на самом сервере * * * * * docker exec app_swiftcloud sh -c 'php /var/www/site.ru/artisan schedule:run >>/dev/null 2>&1'
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
OnYourLips
@OnYourLips
Потому что докер - это не виртуалка, а однородная группа процессов. Там просто не запущен крон и не надо хотеть этого делать.
Кроны и прочие планировщики должны находиться вне fpm контейнера.

Грубо говоря для самого простого случая, запускайте на хосте docker run --rm imagename php /var/www/site.ru/artisan schedule:run
Ответ написан
thewind
@thewind
php программист, front / backend developer
Скорее всего потому, что команда php не найдена в docker контейнере.
Попробуйте сделать whereis php и пропишите полный путь до интерпретатора, что-нибудь типа /usr/local/bin/php

Еще как вариант, залоггировать отдельно ошибки и запуски крона, дописав вверху crontab файла
exec 1>/var/log/cronlog.log
exec 2>/var/log/cronlog.err
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
ai.people Санкт-Петербург
от 150 000 до 250 000 ₽
ECOS Москва
от 80 000 до 120 000 ₽
02 дек. 2020, в 22:29
12000 руб./за проект
02 дек. 2020, в 19:55
4000 руб./за проект
02 дек. 2020, в 19:50
1 руб./за проект