问题现象
在阿里云服务器上用 Docker 部署 OpenClaw 后,通过飞书给机器人设置定时任务(如每天早上 8 点推送热榜)。到了时间,任务没有执行。
问题原因
Docker 容器默认使用 UTC 时间,与宿主机相差 8 小时。当你说“北京时间 8 点执行”时,容器按照 UTC 时间判断——它以为 UTC 0 点就是北京时间 8 点,实际上要等到 UTC 8 点(北京时间 16 点)才执行。
一句话:容器里的时间和外面不是同一个时间。
解决方案
修改 docker-compose.yml,挂载宿主机的时区文件:
services:
openclaw:
volumes:
-/etc/localtime:/etc/localtime:ro# 就这一行
重启容器:
cd /opt/openclaw
docker compose down && docker compose up -d
验证:
docker exec -it openclaw-gateway date
输出北京时间(CST),与宿主机一致。
经验总结
- /etc/localtime:/etc/localtime:ro |
部署容器时顺手加一行配置,定时任务再也不“迟到”。🕒

夜雨聆风