The jekyo.yaml file

Scheduled jobs

A service with a schedule runs on that schedule instead of running forever.


Declaring a job

app: shop
services:
  report:
    image: acme/reporter:1.2       # or build: from source
    command: ["python", "nightly_report.py"]
    env:
      DB_URL: postgres://db:5432/shop
    schedule: "0 3 * * *"          # every night at 03:00

Standard 5-field cron syntax. The job runs to completion; overlapping runs are prevented (a still-running job blocks the next tick). Failures retry.

Constraints

schedule is mutually exclusive with http, replicas, expose, and volumes: a cron job is a task, not a server. It can still reach the app's other services by name (the reporter above talks to db directly).

Observing runs

jekyo status shop        # shows the schedule and last run time
jekyo logs shop/report   # output of recent runs
jekyo ps shop            # run pods appear here while executing
Previous
GPU workloads