带有 Laravel 命令的 Crontab 不工作
Crontab with Laravel commands not working
说明
我在 cron
上 运行 宁 php /var/www/html/artisan schedule:run
但它不工作。
我已将以下步骤添加到我的 Dockerfile
:
FROM php:7.4.1-apache
...
RUN apt-get update && apt-get install -y cron
...
COPY ./.docker/cronjobs /etc/
RUN touch /var/www/html/schedule-run.log
RUN crontab /etc/cronjobs
然后,cron
是添加到 .gitlab-ci.yml
的 CI 步骤之一。
./.docker/cronjobs
文件如下:
* * * * * date >> /var/www/html/schedule-run.log
* * * * * php /var/www/html/artisan schedule:run >> /var/www/html/schedule-run.log
第一行一切正常,我可以在 /var/www/html/schedule-run.log
.
看到 date
命令的输出
问题
问题出在 ./.docker/cronjobs
的第二行,它告诉 cron
每分钟 运行 宁 schedule:run
。
我已经 运行 php /var/www/html/artisan schedule:run >> /var/www/html/schedule-run.log
目录到容器的 bash
然后我说它的输出在 /var/www/html/schedule-run.log
.
换句话说,命令没问题,但是当 cron
想要 运行 它时,它不会是 运行。
环境
Docker-compose: 1.25.4, build 8d51620a
Docker: 19.03.6
Machine: Ubuntu 18.0.4 LTS
经验
我检查了以下问题,但问题没有解决。
- Laravel artisan cron not working
奇怪的是,它已经通过以下cron
(在我的例子中是./.docker/cronjobs
)文件解决了:
# the commented sections have not worked.
#* * * * * php /var/www/html/artisan schedule:run >> /var/www/html/schedule-run.log
#* * * * * /usr/local/bin/php /var/www/html/artisan schedule:run >> /var/www/html/schedule-run.log
#* * * * * cd /var/www/html/ && /usr/local/bin/php artisan schedule:run >> /var/www/html/schedule-run.log
* * * * * cd /var/www/html/ && /usr/local/bin/php artisan schedule:run
我假设是日志访问触发了问题。
说明
我在 cron
上 运行 宁 php /var/www/html/artisan schedule:run
但它不工作。
我已将以下步骤添加到我的 Dockerfile
:
FROM php:7.4.1-apache
...
RUN apt-get update && apt-get install -y cron
...
COPY ./.docker/cronjobs /etc/
RUN touch /var/www/html/schedule-run.log
RUN crontab /etc/cronjobs
然后,cron
是添加到 .gitlab-ci.yml
的 CI 步骤之一。
./.docker/cronjobs
文件如下:
* * * * * date >> /var/www/html/schedule-run.log
* * * * * php /var/www/html/artisan schedule:run >> /var/www/html/schedule-run.log
第一行一切正常,我可以在 /var/www/html/schedule-run.log
.
date
命令的输出
问题
问题出在 ./.docker/cronjobs
的第二行,它告诉 cron
每分钟 运行 宁 schedule:run
。
我已经 运行 php /var/www/html/artisan schedule:run >> /var/www/html/schedule-run.log
目录到容器的 bash
然后我说它的输出在 /var/www/html/schedule-run.log
.
换句话说,命令没问题,但是当 cron
想要 运行 它时,它不会是 运行。
环境
Docker-compose: 1.25.4, build 8d51620a
Docker: 19.03.6
Machine: Ubuntu 18.0.4 LTS
经验
我检查了以下问题,但问题没有解决。
- Laravel artisan cron not working
奇怪的是,它已经通过以下cron
(在我的例子中是./.docker/cronjobs
)文件解决了:
# the commented sections have not worked.
#* * * * * php /var/www/html/artisan schedule:run >> /var/www/html/schedule-run.log
#* * * * * /usr/local/bin/php /var/www/html/artisan schedule:run >> /var/www/html/schedule-run.log
#* * * * * cd /var/www/html/ && /usr/local/bin/php artisan schedule:run >> /var/www/html/schedule-run.log
* * * * * cd /var/www/html/ && /usr/local/bin/php artisan schedule:run
我假设是日志访问触发了问题。