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

docker下php时区错误,docker时间不同步_PHP

设置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

 再查看,时区正常了

docker下php时区错误,docker时间不同步_docker_02

重启php项目,然后前端显示时间正常了