1 unstable release
0.1.0 | Apr 29, 2024 |
---|
#1438 in Command line utilities
160 downloads per month
51KB
956 lines
Cron for Containers is a lightweight cron daemon for containers that aims to be an in-place replacement for ofelia wherever mail capabilities are not required.
Currently, only docker and podman are supported.
WIP: Careful, fresh paint! Only the local job is currently implemented. Come back later or open an issue on the repository if you're interested in the project.
Installation
Install the executable with cargo:
cargo install cfc
Usage
You may either provide a configuration file or extract configuration from container labels.
The scheduling format is an "augmented" cron format inspired by go's implementation. E.g. @every 10m`` or
0 10 * * * *`.
Note: The cron format does not have to contain the seconds specifier
You can configure four different kind of jobs:
job-exec
: Executed in a running container.
job-run
: Executed in a new container, using a specific image.
job-local
: Executed on the host running ofelia.
job-service-run
: Executed in a new "run-once" service, for running inside a swarm
INI-style config
[job-exec "job-executed-on-running-container"]
schedule = @hourly
container = my-container
command = touch /tmp/cfc
YAML-style config
job-executed-on-running-container:
kind: job-exec
schedule: "@hourly"
container: my-container
command: touch /tmp/cfc
Label-based config
docker run -it --rm \
--label cfc.job-run.my-test-job.schedule="@every 5s" \
--label cfc.job-run.my-test-job.command="echo Hello world" \
alpine:latest sleep 9999
Ofelia compatibility
Add --ofelia
to the command-line when running cfc to run in compatibility mode.
Note
Though both an executable and a library are made available, the library is only intended for consumption by the executable and its API should not be considered stable.
Dependencies
~14–29MB
~409K SLoC