如何在 docker 上更改 postgreSQL 9.5 的时区?

Posted

技术标签:

【中文标题】如何在 docker 上更改 postgreSQL 9.5 的时区?【英文标题】:How to change timezone of postgreSQL 9.5 on docker? 【发布时间】:2017-11-07 17:21:52 【问题描述】:

默认时区为 UTC。 但我想将其更改为 GMT+2。 我尝试如下。

alter database governance set timezone = 'GMT+2';

但它不起作用。

我该如何管理它?

postgresql 版本是 9.5。 它在 Docker 上运行。

谢谢!

【问题讨论】:

【参考方案1】:

要更改图像的时区,请尝试以下操作:

docker run -it -e "TZ=GMT+2" postgres:alpine

docker-compose.yml

postgres:
  image: postgres:alpine
  environment: 
    - TZ=GMT+2

【讨论】:

我的解释不够充分。我正在使用 docker-compose.yml。我尝试添加环境:TZ: GMT+2 但它不起作用。 你能发布 docker-compose.yml 吗?【参考方案2】:

您必须以这种格式在docker-compose.yml 文件中指定时区:

postgres:
    image: postgres:alpine
    environment:
        TZ: "Europe/Madrid"

【讨论】:

【参考方案3】:

您应该在 docker compose 文件中设置时区(TZPGTZ 是必需的):

postgres:
    image: postgres
    environment:
        TZ: 'GMT+2'
        PGTZ: 'GMT+2'

参考:https://github.com/docker-library/postgres/issues/137#issuecomment-217064811

【讨论】:

为什么要设置两个键? @DularaMalindu TZ 用于 GNU/Linux,PGTZ 用于 PostgreSQL。【参考方案4】:

对于那些使用 TZ 并且没有任何反应的人

我的原因是容器第一次启动 它将 TZ 变量存储在映射卷中的 PG 配置中。并且在将 docker compose 文件更改为另一个 TZ 值后,它保持不变并且看起来不起作用。 你应该先删除 db 然后重新启动 docker-compose

【讨论】:

谢谢,我的日志卡在错误的时区

以上是关于如何在 docker 上更改 postgreSQL 9.5 的时区?的主要内容,如果未能解决你的问题,请参考以下文章

来自 docker 的默认 postgresql.conf 文件 [重复]

如何在 Python3.7 docker 容器中执行并行 PostgreSQL 查询?

如何在远程 postgresql docker 上运行 run junit

如何将主机上运行的 Spring Boot 应用程序连接到 Docker 上运行的 Postgresql?

如何将 Docker 内部的 Spring Boot 应用程序连接到 PostgreSQL 外部

在 Windows 7 上更改/重置 postgresql 用户密码