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

如何通过Crontab执行Docker-Compose定时任务?

正确的Crontab配置方法

方法一:切换路径后执行(更贴近终端习惯)

*/5 * * * * cd /home/ec2-user/legend-of-solgard && /usr/bin/docker-compose -f docker-compose-deploy.yml run --rm app sh -c "python manage.py runcrons"
  • 用&&替代;,确保只有切换路径成功后才执行后续命令,避免路径错误时无效执行
  • 补上你之前遗漏的manage.py后缀(写成manage会导致Python找不到文件)
  • 指定docker-compose的绝对路径,避免crontab环境变量缺失导致命令找不到

方法二:直接使用绝对路径指定配置文件(更可靠)

*/5 * * * * /usr/bin/docker-compose -f /home/ec2-user/legend-of-solgard/docker-compose-deploy.yml run --rm app sh -c "python manage.py runcrons"

这种写法无需切换目录,直接通过配置文件的绝对路径让docker-compose定位到项目,避免路径相关的潜在问题。

关键纠错与排查要点

  • 你之前的第二种写法误用了exec命令:docker-compose exec用于进入已运行的容器执行命令,而你需要的是run创建临时容器执行后自动销毁,两者场景完全不同
  • 若仍执行失败,可添加日志输出排查问题:
*/5 * * * * /usr/bin/docker-compose -f /home/ec2-user/legend-of-solgard/docker-compose-deploy.yml run --rm app sh -c "python manage.py runcrons" >> /var/log/cron_crons_task.log 2>&1

日志会写入/var/log/cron_crons_task.log,方便查看具体报错信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 04:16:06