如何在自托管Coolify.io上运行Laravel调度器/Cron任务
在Coolify中配置Laravel调度器的Cron任务方案
方法一:通过Coolify面板直接配置(推荐)
Coolify支持为托管的Docker应用添加容器内执行的Cron任务,步骤如下:
- 打开Laravel应用的Coolify管理界面,找到Cron Jobs(部分版本显示为Scheduled Tasks)选项卡
- 点击「Add New Cron Job」,填写以下配置:
- Name:自定义任务名称,比如
Laravel Scheduler Runner - Command:
php artisan schedule:run - Schedule:填写
* * * * *(必须每分钟执行一次,匹配Laravel调度器的触发逻辑) - Target:选择当前Laravel应用对应的Docker容器,确保命令在应用容器内执行
- (可选)Description:添加备注说明任务用途
- Name:自定义任务名称,比如
- 保存任务后,可点击「Run Now」手动触发一次,验证命令是否能正常执行,同时查看任务日志确认无报错
方法二:通过VPS SSH手动配置主机Cron
如果Coolify面板配置遇到问题,可直接在VPS主机上配置Cron,让它每分钟调用容器内的Laravel调度器:
- SSH登录你的VPS,执行
docker ps找到Laravel应用对应的容器名称或ID - 编辑主机的Cron表:
crontab -e - 添加一行Cron规则:
* * * * * docker exec -d <容器名称/ID> php artisan schedule:run >> /dev/null 2>&1-d参数让命令在后台执行,避免阻塞Cron进程>> /dev/null 2>&1用于重定向输出,防止产生不必要的日志文件
- 保存退出后,重启Cron服务(根据系统不同选择命令):
- Ubuntu/Debian:
systemctl restart cron - CentOS/Rocky:
systemctl restart crond
- Ubuntu/Debian:
验证与排查
- 进入容器内部验证:执行
docker exec -it <容器名称/ID> bash,然后运行php artisan schedule:list,确认Laravel的定时任务列表能正常输出 - 查看Laravel日志:进入容器后查看
storage/logs/laravel.log,检查是否有调度器执行的相关日志 - 确保.env配置正确:容器内的
APP_ENV、APP_KEY必须配置正常,否则调度器可能无法启动
内容的提问来源于stack exchange,提问作者Jibin Bose
相关产品推荐
相关产品推荐

