Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/funkyfuture/deck-chores
A job scheduler for Docker containers, configured via labels.
https://github.com/funkyfuture/deck-chores
docker scheduled-jobs scheduler scheduler-service
Last synced: about 2 months ago
JSON representation
A job scheduler for Docker containers, configured via labels.
- Host: GitHub
- URL: https://github.com/funkyfuture/deck-chores
- Owner: funkyfuture
- License: isc
- Created: 2016-12-04T02:59:47.000Z (almost 8 years ago)
- Default Branch: main
- Last Pushed: 2024-07-26T04:51:31.000Z (about 2 months ago)
- Last Synced: 2024-07-27T05:05:42.131Z (about 2 months ago)
- Topics: docker, scheduled-jobs, scheduler, scheduler-service
- Language: Python
- Homepage: https://deck-chores.readthedocs.io/
- Size: 872 KB
- Stars: 192
- Watchers: 13
- Forks: 26
- Open Issues: 15
-
Metadata Files:
- Readme: README.rst
- Changelog: HISTORY.rst
- Contributing: CONTRIBUTING.rst
- License: LICENSE.txt
Awesome Lists containing this project
README
deck-chores
===========.. image:: https://img.shields.io/docker/pulls/funkyfuture/deck-chores.svg
:target: https://hub.docker.com/r/funkyfuture/deck-chores/.. image:: https://images.microbadger.com/badges/image/funkyfuture/deck-chores.svg
:target: https://microbadger.com/images/funkyfuture/deck-chores.. image:: https://img.shields.io/pypi/v/deck-chores.svg
:target: https://pypi.org/project/deck-chores/**A job scheduler for Docker containers, configured via container labels.**
* Documentation: https://deck-chores.readthedocs.io
* Image repositories:
* https://github.com/funkyfuture/deck-chores/pkgs/container/deck-chores
* 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 licenseFeatures
--------- 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 ``amd64``, ``arm64`` and ``arm`` platforms
(the latter are currently not provided for download)Example
-------Let's say you want to dump the database of a Wordpress once a day. Here's a ``docker-compose.yml``
that defines a job that will be handled by *deck-chores*:.. code-block:: yaml
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: dailyIt is however recommended to use scripts with a proper shebang for such actions. Their outputs to
``stdout`` and ``stderr`` as well as their exit code will be logged by *deck-chores*.Maintenance
-----------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::
make build
Limitations
-----------When running on a cluster of `Docker Swarm `_
nodes, each ``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.Acknowledgements
----------------It wouldn't be as charming to write this piece of software without these projects:
* `APScheduler `_ for managing jobs
* `cerberus `_ for processing metadata
* `docker-py `_ for Docker interaction
* `flake8 `_, `mypy `_,
`pytest `_ and `tox `_ for testing
* `Python `_Authors
-------- Frank Sachsenheim (maintaining)
- aeri4list
- alpine-digger
- Brynjar Smári Bjarnason
- Garret Hohmann