diff --git a/src/Handler.php b/src/Handler.php index 35988d7e779b1d2a8ec0e251ec203c3a36974bc7..6edf1e301a2bd1f6b527f226f94b48d85260a312 100644 --- a/src/Handler.php +++ b/src/Handler.php @@ -543,11 +543,11 @@ class Handler extends BaseHandler { // Ignoring this for now. } } + $activeTasks = []; foreach ($this->config->readValue('crontabs') ?? [] as $user => $tasks) { if (!is_array($tasks)) { continue; } - $activeTasks = []; foreach ($tasks as $name => $task) { $disabled = !empty($task['disabled']); $command = $task['command']; @@ -607,25 +607,20 @@ class Handler extends BaseHandler { } if (!$disabled) { if (count(explode(' ', $task['schedule'])) === 5) { - // Add leading "*" for seconds. - $task['schedule'] = '* ' . $task['schedule']; + // Add leading "0" for seconds. + $task['schedule'] = '0 ' . $task['schedule']; } $activeTasks[] = [ 'name' => $task['name'], 'schedule' => $task['schedule'], 'command' => $command, 'ping_url' => $ping_url, + 'user' => $user, ]; } } - if (empty($activeTasks)) { - $files[$user] = [ - 'dest' => $projectRoot . '/crontabs', - 'delete' => TRUE, - ]; - } - else { - $files[$user] = [ + if (!empty($activeTasks)) { + $files['jobs.ini'] = [ 'source' => 'crontabs/template.twig', 'dest' => $projectRoot . '/crontabs', 'options' => $activeTasks, diff --git a/templates/crontabs/template.twig b/templates/crontabs/template.twig index a4dd9eea41f7b5eaa51de5043a81f4e89efd9b8f..5e66c156fb27368c0106b8f41cbb7b2a3cbae9b0 100644 --- a/templates/crontabs/template.twig +++ b/templates/crontabs/template.twig @@ -1,9 +1,10 @@ {% for line in loopoptions|default([]) %} [job-exec "{{ line.name }}"] no-overlap = true +tty = true +user = {{ line.user }} schedule = {{ line.schedule }} container = {{ projectname }}-php-1 -command = {{ line.command }}{% if line.ping_url %} && curl -fsS --retry 5 -o /dev/null {{ line.ping_url }}{% endif %} - +command = sh -c \"{{ line.command }}{% if line.ping_url %} && curl -fsS --retry 5 --retry-delay 9 -o /dev/null {{ line.ping_url }}{% endif %}\" {% endfor %} diff --git a/templates/docker-compose.yml.twig b/templates/docker-compose.yml.twig index aaae71ce719a7cd6aadf1e8e44544d3dff9b8f2d..eb8f9f565c262e5e1793eeb5f657324e56169ae7 100644 --- a/templates/docker-compose.yml.twig +++ b/templates/docker-compose.yml.twig @@ -117,7 +117,7 @@ services: - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro - /var/run/docker.sock:/var/run/docker.sock:ro - - {{ projectroot }}/crontabs:/etc/ofelia/config.ini + - {{ projectroot }}/crontabs/jobs.ini:/etc/ofelia/config.ini {% endif %} {{ webserver.type }}: