Stu Mason
Stu Mason

Activity

Issue Opened

Issue #27 opened: 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 logs showed repeated permission denied errors
  • Manually dispatching jobs worked fine, confirming the queue/Horizon were healthy
  • Only the scheduler was broken