#cron #container-image #ofelia

bin+lib cfc

适用于容器环境的 crontab 替代品

1 个不稳定版本

0.1.0 2024年4月29日

#1236命令行工具

Apache-2.0

51KB
956

容器 Cron

Crates.io Coverage status Apache License Documentation

容器 Cron 是一个轻量级的 cron 守护进程,旨在在没有邮件功能的情况下替换 ofelia。

目前仅支持 docker 和 podman。

安装

使用 cargo 安装可执行文件

cargo install cfc

用法

您可以选择提供一个配置文件或从容器标签中提取配置。

调度格式是受 go 的实现启发的“增强”cron 格式。例如 @every 10m`` 或 0 10 * * * *`。

注意: cron 格式不需要包含秒指定符

您可以配置四种不同类型的任务

job-exec:在运行的容器中执行。 job-run:使用特定镜像在新的容器中执行。 job-local:在运行 ofelia 的主机上执行。 job-service-run:在新的“单次运行”服务中执行,用于在集群内运行

INI 风格配置

[job-exec "job-executed-on-running-container"]
schedule = @hourly
container = my-container
command = touch /tmp/cfc

YAML 风格配置

job-executed-on-running-container:
    kind: job-exec
    schedule: "@hourly"
    container: my-container
    command: touch /tmp/cfc

标签配置

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 兼容性

在运行 cfc 时添加 --ofelia 以运行兼容模式。

注意

虽然提供了可执行文件和库,但库仅针对可执行文件,其 API 应被视为不稳定。

依赖关系

~14–26MB
~385K SLoC