当前位置: 首页 > article >正文

使用docker compose启动postgres并设置时区

设置PostGres时区

      • 方法 1: 使用 `POSTGRES_INITDB_ARGS` 设置时区
      • 方法 2: 使用初始化脚本设置时区
        • 创建 `init-user-db.sql`
        • 更新 `docker-compose.yml`
      • 启动服务

要在启动 PostgreSQL 数据库时设置时区,可以通过在 docker-compose.yml 文件中添加环境变量或通过配置文件来实现。对于 PostgreSQL,你可以使用 POSTGRES_INITDB_ARGS 环境变量来传递初始化数据库时的参数,包括时区设置。

方法 1: 使用 POSTGRES_INITDB_ARGS 设置时区

可以在 docker-compose.yml 文件中的 environment 部分添加 POSTGRES_INITDB_ARGS 环境变量,并指定时区选项。例如,如果想设置时区为 Asia/Shanghai,可以这样做:

version: '3.9'
services:
  dbpg16:
    image: 192.168.1.111:5000/crm/postgres:16.5
    container_name: pg_db_16
    restart: always
    ports:
      - "25432:5432"
      - "22779:22"
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_PASSWORD=odoo
      - POSTGRES_USER=odoo
      - PGDATA=/var/lib/postgresql/data/pgdata
      - POSTGRES_INITDB_ARGS=--timezone='Asia/Shanghai'  # 设置时区
    volumes:
      - ./odoo-db-data:/var/lib/postgresql/data/pgdata
      - ./etc/pgbackrest:/etc/pgbackrest
volumes:
  odoo-db-data:

方法 2: 使用初始化脚本设置时区

如果需要更复杂的初始化操作,或者想要确保每次启动容器时都应用某些设置,可以使用一个初始化 SQL 脚本来设置时区。首先创建一个 SQL 文件(例如 init-user-db.sql),然后将其挂载到容器中。

创建 init-user-db.sql

在你的项目目录下创建一个名为 init-user-db.sql 的文件,并添加以下内容:

-- 设置时区
SET timezone = 'Asia/Shanghai';
更新 docker-compose.yml

修改 docker-compose.yml 文件以包含该初始化脚本:

version: '3.9'
services:
  dbpg16:
    image: 192.168.1.111:5000/crm/postgres:16.5
    container_name: pg_db_16
    restart: always
    ports:
      - "25432:5432"
      - "22779:22"
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_PASSWORD=odoo
      - POSTGRES_USER=odoo
      - PGDATA=/var/lib/postgresql/data/pgdata
    volumes:
      - ./odoo-db-data:/var/lib/postgresql/data/pgdata
      - ./etc/pgbackrest:/etc/pgbackrest
      - ./init-user-db.sql:/docker-entrypoint-initdb.d/init-user-db.sql  # 挂载初始化脚本
volumes:
  odoo-db-data:

启动服务

完成上述更改后,运行以下命令来启动服务:

docker-compose up -d

这将根据你的配置启动 PostgreSQL 容器,并根据所选的方法之一设置时区。


http://www.kler.cn/a/549397.html

相关文章:

  • Linux从0到1——线程池【利用日志Debug】
  • nlf 3d pose 部署学习笔记
  • 在使用 uni.getLocation 步骤和一些坑
  • Django简介
  • RedisTimeSeries
  • vscode本地和远程对应分支没有同步提交数量
  • 深度学习实战道路裂缝缺陷识别
  • 【大模型】DeepSeek 高级提示词技巧使用详解
  • LeetCodeHot100(普通数组和矩阵篇)
  • 计算机网络知识速记 :HTTP多个TCP连接的实现方式
  • 大语言模型评判者是什么,有什么应用领域
  • 【数据采集】基于Selenium爬取猫眼Top100电影信息
  • Tetragon:一款基于eBPF的运行时环境安全监控工具
  • 【机器学习】线性回归 线性回归模型的损失函数 MSE RMSE MAE R方
  • 【Elasticsearch】multi_match查询
  • 【微服务学习四】gateway网关的使用
  • 切换git仓库远程地址
  • SaaS 平台开发要点
  • 如何在Servlet容器中使用HttpServletResponse?
  • 【Three.js】JS 3D library(一个月进化史)