问题:在PHP的DOCKER容器中,使用crontab定时任务,不能正常运行。经排查,容器内时区不为东八区。相差8小时。
解决:更改容器内的时区设置,并重启cron服务。
进入容器,设置时区
1.进入Docker容器。略
2.列出安装的时区文件
ls /usr/share/zoneinfo
如果时区文件已存在,下一步【安装timezone数据包】可跳过
3.安装timezone数据包[如果已存在,直接跳过]
# -U参数,更新仓储缓存,防止添加失败
apk add -U tzdata
4.备份,拷贝时区文件
mv /etc/localtime /etc/localtime.bk
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
5.验证
date
6.移除时区文件
apk del tzdata
重启cron:
root@00cd855968e8:/var/www/html# service crond restart
crond: unrecognized service
root@00cd855968e8:/var/www/html# /etc/init.d/crond reload
bash: /etc/init.d/crond: No such file or directory
root@00cd855968e8:/var/www/html# /etc/init.d/cron reload
[ ok ] Reloading configuration files for periodic command scheduler: cron.
root@00cd855968e8:/var/www/html# /etc/init.d/cron restart
[....] Restarting periodic command scheduler: cron[....] Stopping periodic command scheduler: cron/sbin/start-stop-daemon: warning: failed to kill 1114: No such process
. ok
[ ok ] Starting periodic command scheduler: cron.
Docker-设置Alpine的容器时区 https://blog.csdn.net/samsara_x/article/details/85270192