美文网首页小技巧
Docker Postgresql 13 修改时区

Docker Postgresql 13 修改时区

作者: mapoor | 来源:发表于2021-12-07 20:34 被阅读0次

    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

    参考:

    1. https://www.postgresql.org/docs/13/runtime-config-client.html#RUNTIME-CONFIG-CLIENT-FORMAT
    2. https://www.postgresql.org/docs/13/datatype-datetime.html#DATATYPE-TIMEZONES
    3. In container, "/etc/localtime" allways points to "/usr/share/zoneinfo/UTC"
    4. Postgres 13 Docker Hub Image

    相关文章

      网友评论

        本文标题:Docker Postgresql 13 修改时区

        本文链接:https://www.haomeiwen.com/subject/lrvaxrtx.html