A job scheduler for Docker containers, configured via container labels.
- Documentation: https://deck-chores.readthedocs.io
- Image repository: https://hub.docker.com/r/funkyfuture/deck-chores
- Code repository: https://github.com/funkyfuture/deck-chores
- Issue tracker: https://github.com/funkyfuture/deck-chores/issues
- Free software: ISC license
- define regular jobs to run within a container context with container and optionally with image labels
- use date, interval and cron-like triggers
- set a maximum of simultaneously running instances per job
- restrict job scheduling to one container per service
- multi-architecture image supports
armv7lplatforms, no emulator involved
Let’s say you want to dump the database of a Wordpress once a day. Here’s a
that defines a job that will be handled by deck-chores:
version: "3.7" services: wordpress: image: wordpress mysql: image: mariadb volumes: - ./database_dumps:/dumps labels: deck-chores.dump.command: sh -c "mysqldump --all-databases > /dumps/dump-$$(date -Idate)" deck-chores.dump.interval: daily
It is however recommended to use scripts with a proper shebang for such actions. Their outputs to
stderr as well as their exit code will be logged by deck-chores.
The final release is supposed to receive monthly updates that includes updates of all updateable dependencies. If one is skipped, don’t worry. When a second maintenance release is skipped, feel free to open an issue to ask what the status is.
You can always build images upon an up-to-date base image with:
When running on a cluster of Docker Swarm
deck-chores instance can only observe the containers on the
node it’s running on, and hence only restrict to run one job per service within
the node’s context.