docker时间错误,时区错误,php时区错误,
介绍
项目中使用docker部署php服务,发现时间格式化后时区不对,
开始以为是容器时区跟宿主机不同步,所以先设置了宿主机时区
docker时区设置
查看时区
date -R
同步宿主机时间到容器中
docker cp /etc/localtime workerman:/etc/localtime
然后容器中date -R查看时区跟宿主机一样了
php时区设置
后面发现docker下运行的php-cli 容器,php默认时区为UTC时区
php容器中查看当前时区设置
显示如下
php -info | grep timezone
设置php时区
运行中的php容器中执行
printf '[PHP]\ndate.timezone = Asia/Shanghai\n' > /usr/local/etc/php/conf.d/tzone.ini
或者在dockerFile中添加以下命令,重新构建镜像
RUN printf '[PHP]\ndate.timezone = Asia/Shanghai\n' > /usr/local/etc/php/conf.d/tzone.ini
再查看,时区正常了
重启php项目,然后前端显示时间正常了