1. 问题描述
使用DockerHub 官方镜像,启动了一个Postgres 13 的 Container ,使用过程中,发现时区错误,无论如何修改 TimeZone 都是UTC
postgres=# show timezone;
TimeZone
----------
UTC
(1 row)
需要永久修改为 Asia/Shanghai
2. 尝试过的方法
a. 使用psql语句 set timezone='Asia/Shanghai';
;
退出psql环境再次连接后timezone恢复了 --> 无效
b. 通过修改container下的config.v2.json
文件,在Env里面加入"TZ=Asia/Shanghai"
和 "PGTZ=Asia/Shanghai"
;
重启docker & 重启container --> 无效
c. 通过修改container下的psql的配置文件postgresql.conf
, 修改timezone='Asia/Shanghai'
和 log_timezone='Asia/Shanghai'
;
重启docker & 重启container --> 无效
3. 解决方法
修改container自身的timezone
>> ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
>> echo 'Asia/Shanghai' > /etc/timezone
最后: docker restart container_xxx
--> 成功
4. 总结
postgresql container 使用了container本地的 timezone