1. 問題描述
使用DockerHub 官方鏡像,啟動了一個Postgres 13 的 Container 坷剧,使用過程中塞祈,發(fā)現(xiàn)時區(qū)錯誤,無論如何修改 TimeZone 都是UTC
postgres=# show timezone;
TimeZone
----------
UTC
(1 row)
需要永久修改為 Asia/Shanghai
2. 嘗試過的方法
a. 使用psql語句 set timezone='Asia/Shanghai';
;
退出psql環(huán)境再次連接后timezone恢復(fù)了 --> 無效
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. 總結(jié)
postgresql container 使用了container本地的 timezone