Issue #27 closed: fix: scheduler supervisor command fails with permission denied
Problem
The scheduler supervisor program generated by DockerGenerator.php silently fails with:
/bin/sh: 1: cannot create /dev/stdout: Permission denied
This happens every minute, preventing any scheduled jobs from running.
Root Cause
In src/Docker/DockerGenerator.php, the scheduler command uses shell redirection to /dev/stdout:
command=/bin/sh -c "while true; do /usr/local/bin/php /var/www/html/artisan schedule:run --verbose --no-interaction >> /dev/stdout 2>&1; sleep 60; done"
When running as www-data user, the shell cannot redirect to /dev/stdout in certain container configurations.
Fix
Remove the redundant >> /dev/stdout 2>&1 redirect. Supervisor already captures stdout/stderr via the stdout_logfile=/dev/stdout and stderr_logfile=/dev/stderr directives:
command=/bin/sh -c "while true; do /usr/local/bin/php /var/www/html/artisan schedule:run --verbose --no-interaction; sleep 60; done"
Impact
Any application deployed using laravel-coolify with the scheduler enabled will have a completely broken scheduler - jobs will never run. The container appears healthy (supervisor shows scheduler as RUNNING), but the actual command fails silently.
How I Found This
- Activity feed on stumason.dev hadn't updated in 5-6 days
docker logsshowed repeated permission denied errors- Manually dispatching jobs worked fine, confirming the queue/Horizon were healthy
- Only the scheduler was broken