本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

ofelia Docker 镜像下载 - 轩辕镜像

ofelia 镜像详细信息和使用指南

ofelia 镜像标签列表和版本信息

ofelia 镜像拉取命令和加速下载

ofelia 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

ofelia
mcuadros/ofelia
自动构建

ofelia 镜像详细信息

ofelia 镜像标签列表

ofelia 镜像使用说明

ofelia 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

Ofelia是一个基于Go构建的现代化、轻量级Docker环境作业调度器,旨在替代传统cron。
63 收藏0 次下载activemcuadros镜像

ofelia 镜像详细说明

ofelia 使用指南

ofelia 配置说明

ofelia 官方文档

Ofelia - 作业调度器

Ofelia是一个基于Go构建的现代化、轻量级Docker环境作业调度器,旨在替代传统的cron。

为什么选择Ofelia?

cron发布至今已超过28年,世界发生了巨大变化,尤其是Docker革命之后。Vixie's cron虽然表现出色,但扩展性差,且出现问题时难以调试。

目前已有许多解决方案:现成的容器化cron、命令包装器等,但最终简单任务往往变得复杂。

工作原理

Ofelia的主要特性是能够直接在Docker容器中执行命令。通过Docker API,Ofelia模拟exec的行为,可在运行中的容器内执行命令,也可在新容器中运行命令并在执行结束后销毁容器。

配置

作业

调度格式与Go实现的cron相同,例如@every 10s0 0 1 * * *(每天凌晨1点)。

注意:该格式以秒为起始,而非分钟。

支持四种作业类型:

  • job-exec:在运行中的容器内执行
  • job-run:使用指定镜像在新容器内运行命令
  • job-local:在运行Ofelia的主机上执行命令
  • job-service-run:在swarm集群中创建"一次性"服务并执行命令

有关所有可用参数,参见作业参考文档。

INI风格配置

通过ofelia daemon --config=/path/to/config.ini运行

ini
[job-exec "在运行中容器执行的作业"]
schedule = @hourly
container = my-container
command = touch /tmp/example

[job-run "在新容器执行的作业"]
schedule = @hourly
image = ubuntu:latest
command = touch /tmp/example

[job-local "在当前主机执行的作业"]
schedule = @hourly
command = touch /tmp/example

[job-service-run "在新容器执行的服务"]
schedule = 0,20,40 * * * *
image = ubuntu
network = swarm_network
command = touch /tmp/example

Docker标签配置

要使用此配置类型,Ofelia需要访问Docker套接字。

sh
docker run -it --rm \
    -v /var/run/docker.sock:/var/run/docker.sock:ro \
    --label ofelia.job-local.my-test-job.schedule="@every 5s" \
    --label ofelia.job-local.my-test-job.command="date" \
        mcuadros/ofelia:latest daemon --docker

标签格式:ofelia.<作业类型>.<作业名称>.<作业参数>=<参数值>。此配置类型支持INI文件的所有功能。

也可通过在目标容器上设置标签来配置job-exec,需在目标容器上添加ofelia.enabled=true标签。

例如,要让Ofelia在现有容器my_nginx中执行uname -a命令,需启动my_nginx容器时配置:

sh
docker run -it --rm \
    --label ofelia.enabled=true \
    --label ofelia.job-exec.test-exec-job.schedule="@every 5s" \
    --label ofelia.job-exec.test-exec-job.command="uname -a" \
        nginx

此时启动Ofelia容器将获取两个作业:

  • 本地作业 - date
  • 执行作业 - uname -a

Docker Compose示例:

yaml
version: "3"
services:
  ofelia:
    image: mcuadros/ofelia:latest
    depends_on:
      - nginx
    command: daemon --docker
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    labels:
      ofelia.job-local.my-test-job.schedule: "@every 5s"
      ofelia.job-local.my-test-job.command: "date"

  nginx:
    image: nginx
    labels:
      ofelia.enabled: "true"
      ofelia.job-exec.datecron.schedule: "@every 5s"
      ofelia.job-exec.datecron.command: "uname -a"

日志

Ofelia提供三种日志驱动,可在[global]部分配置:

  • mail:发送邮件
  • save:将结构化执行报告保存到目录
  • slack:通过Slack webhook发送消息

配置选项

  • 邮件驱动

    • smtp-host - SMTP服务器地址
    • smtp-port - SMTP服务器端口
    • smtp-user - SMTP服务器登录用户
    • smtp-password - SMTP服务器登录密码
    • email-to - 收件人***地址
    • email-from - 发件人***地址
    • mail-only-on-error - 仅在执行失败时发送邮件
  • 保存驱动

    • save-folder - 报告保存目录
    • save-only-on-error - 仅在执行失败时保存报告
  • Slack驱动

    • slack-webhook - Slack webhook URL
    • slack-only-on-error - 仅在执行失败时发送Slack消息

并发控制

Ofelia可防止作业并行运行(例如首次执行未完成时再次调度)。若作业设置no-overlap选项,则不会并发执行。

安装

部署Ofelia最简单的方式是使用Docker(参见上述示例)。

若不想使用Docker镜像,可从发布页面下载二进制文件。

项目为何命名为Ofelia?Ofelia是西班牙漫画《莫塔德罗与菲莱蒙》(Mortadelo y Filemón)中的办公室助理。

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker加速体验非常流畅,大镜像也能快速完成下载。"