Container-aware cron scheduler with supercronic for Docker environments
1.8K
Universal cron scheduler for Docker — run any command on a schedule.
Docker doesn't have cron. Every deployment needs scheduled tasks. This image:
docker CLI for container management tasksTZ and schedules follow local timedocker run -d \
-e CRON_SCHEDULE="*/5 * * * *" \
-e CRON_COMMAND="echo hello" \
zachbg/docker-cron
docker run -d \
-e CRON_JOB_1="*/5 * * * * curl -sf https://myapp.com/health" \
-e CRON_JOB_2="0 3 * * * curl -X POST https://myapp.com/api/cleanup" \
-e CRON_JOB_3="0 * * * * echo hourly task" \
zachbg/docker-cron
services:
cron:
image: zachbg/docker-cron
restart: unless-stopped
environment:
- TZ=America/New_York
- CRON_JOB_BACKUP=0 3 * * * curl -sf http://backup:8080/run
- CRON_JOB_CLEANUP=0 */6 * * * curl -X POST http://app:3000/api/cleanup
- CRON_JOB_HEALTH=*/5 * * * * curl -sf https://hc.example.com/ping/xxx
volumes:
- /var/run/docker.sock:/var/run/docker.sock # Optional: for Docker commands
services:
cron:
image: zachbg/docker-cron
restart: unless-stopped
environment:
- CRON_JOB_RESTART=0 4 * * * docker restart myapp
- CRON_JOB_PRUNE=0 2 * * 0 docker system prune -af
volumes:
- /var/run/docker.sock:/var/run/docker.sock
services:
cron:
image: zachbg/docker-cron
volumes:
- ./crontab:/etc/cron.d/jobs
| Method | Example |
|---|---|
| Env vars | CRON_JOB_1="* * * * * echo hi" |
| Schedule + Command | CRON_SCHEDULE="* * * * *" + CRON_COMMAND="echo hi" |
| Mount file | -v ./crontab:/etc/cron.d/jobs |
| Arguments | docker run zachbg/docker-cron "* * * * * echo hi" |
| Variable | Default | Description |
|---|---|---|
CRON_JOB_* | Cron jobs (name is for your reference) | |
CRON_SCHEDULE | Schedule for single-job mode | |
CRON_COMMAND | Command for single-job mode | |
TZ | UTC | Timezone for schedules |
MIT
Content type
Image
Digest
sha256:20d7bf01d…
Size
20.7 MB
Last updated
6 months ago
docker pull zachbg/docker-cron