You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Alpine镜像中Supervisord运行Cron无输出故障排查

问题排查与修复方案

1. Crontab时间字段格式错误

你的crontab.txt里写了6个时间字段:

*/10 * * * * * bash ./run.sh >logs.log 2>&1

标准crontab格式是5个字段(分 时 日 月 周),多出来的最后一个星号属于无效配置,会导致任务无法被正确识别触发。修正后应为:

*/10 * * * * bash /opt/app-root/src/run.sh >/opt/app-root/src/logs.log 2>&1

2. Run.sh脚本语法错误

run.sh里的命令替换反引号未闭合:

#!/bin/bash
echo `date +%Y%m%d_%H%M%S

末尾缺少配对的反引号,会直接导致脚本执行失败,修正后:

#!/bin/bash
echo `date +%Y%m%d_%H%M%S`
# 更推荐可读性更好的$()写法:
# echo $(date +%Y%m%d_%H%M%S)

3. 相对路径导致的文件找不到问题

Cron任务的默认工作目录并非你在Dockerfile中设置的/opt/app-root/src,使用./run.sh和logs.log这类相对路径时,cron会找不到脚本文件,也无法正确写入日志。必须改用绝对路径,如上述修正后的crontab命令所示。

4. Alpine Crond日志调试优化(可选)

Alpine自带的crond默认日志级别较低,你可以在supervisord配置中添加日志参数,方便后续排查问题:

[program:cron]
command=crond -f -l 2
user=root
autostart=true
autorestart=true

内容的提问来源于stack exchange,提问作者bruvio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 16:25:38