easyengine/cronEasyEngine Cron 容器是 EasyEngine 项目的组成部分,专为在容器化环境中运行定时任务(cron jobs)设计。该镜像基于 EasyEngine 生态标准构建,提供轻量、可靠的定时任务调度能力,适用于与 EasyEngine 其他组件(如 Nginx、PHP、MariaDB 等)协同工作,满足 Web 应用(如 WordPress)的定时任务需求,例如数据库备份、日志清理、站点维护等自动化操作。
* * * * * 格式定义任务调度规则。easyengine/nginx、easyengine/php、easyengine/mariadb 等)无缝兼容,可直接访问同一环境中的服务和资源。从 Docker Hub 拉取最新版本镜像:
bashdocker pull easyengine/cron:latest
以下命令启动一个 cron 容器,挂载自定义任务配置和日志目录,并设置时区:
bashdocker run -d \ --name easyengine-cron \ --network=easyengine_default # 连接到 EasyEngine 其他服务所在网络(需提前创建)\ -v /path/to/your/crontab:/etc/cron.d/my-tasks:ro # 挂载自定义 cron 任务文件(只读)\ -v /host/path/to/logs:/var/log/cron # 挂载日志目录到宿主机,持久化任务日志\ -e TZ=Asia/Shanghai # 设置时区(默认 UTC)\ easyengine/cron:latest
说明:
/path/to/your/crontab:宿主机上的 cron 任务文件路径,文件内容需符合 cron 语法(示例见下文)。--network:需与 EasyEngine 其他组件(如数据库、Web 服务)在同一网络,确保任务可访问目标服务。
在 EasyEngine 多容器环境中,通过 docker-compose.yml 集成 cron 服务:
yamlversion: '3' services: cron: image: easyengine/cron:latest container_name: easyengine-cron networks: - easyengine_net # 共享网络,与 nginx、php、mariadb 等服务互通 volumes: - ./cron-tasks:/etc/cron.d:ro # 挂载宿主机 cron 任务目录(目录内所有 .sh 或无后缀文件会被加载) - cron-logs:/var/log/cron # 持久化日志到命名卷 environment: - TZ=Asia/Shanghai # 设置时区 restart: unless-stopped # 容器退出后自动重启(非手动停止时) networks: easyengine_net: external: true # 假设已存在 easyengine_net 网络(由 EasyEngine 主环境创建) volumes: cron-logs: # 命名卷,持久化日志数据
| 参数名 | 说明 | 默认值 | 示例 |
|---|---|---|---|
TZ | 容器时区,影响 cron 任务执行时间(需与任务配置中的时区一致) | UTC | Asia/Shanghai |
| 容器路径 | 用途 | 宿主机挂载建议 | 权限 |
|---|---|---|---|
/etc/cron.d | 存放 cron 任务配置文件(支持多个文件) | /host/path/to/cron-tasks | 只读(ro) |
/var/log/cron | cron 任务执行日志 | /host/path/to/cron-logs 或命名卷 | 读写(rw) |
在宿主机的 /path/to/your/crontab 中定义任务(语法:分 时 日 月 周 用户 命令):
bash# 每天凌晨 2 点执行数据库备份(假设 mariadb 容器名为 easyengine-mariadb) 0 2 * * * root mysqldump -h easyengine-mariadb -u root -p$DB_PASSWORD wordpress > /backup/wp_$(date +\%Y\%m\%d).sql # 每小时清理 /tmp 目录下 24 小时前的文件 0 * * * * root find /tmp -type f -mtime +1 -delete
注意:
- 任务文件需设置正确权限(宿主机上建议
chmod 644),避免因权限问题导致 cron 无法加载。- 若任务需要访问其他容器服务(如数据库),需通过容器名或服务名访问(依赖 Docker 网络 DNS 解析)。
crontab -l 或 cron -f 本地验证任务语法,避免因语法错误导致任务不执行。-e DB_PASSWORD=xxx),避免明文写在任务文件中。/var/log/cron 日志,或集成日志收集工具(如 ELK)监控任务执行状态。restart: unless-stopped,确保容器异常退出后自动恢复,避免任务中断。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务