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

使用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 容器,并根据所选的方法之一设置时区。

相关文章:

  • 力扣100. 相同的树(利用分解思想解决)
  • 相机与激光雷达联合标定综述
  • 网络安全 | 什么是网络安全?
  • Vue2/Vue3生命周期对比
  • 第十五天 学习并实践HarmonyOS应用的基本结构、页面导航和状态管理
  • C++:构造函数,static成员,友元,内部类
  • 指标+大模型,构建更全、更准、更快的数据分析体验
  • Vue 2 + Webpack 项目中集成 ESLint 和 Prettier
  • 深入浅出理解HBase:大数据时代的“超级仓库”
  • 【大疆无人机地图测绘技术学习:高精度、高效率的全流程解决方案】
  • vue.js之虚拟 DOM
  • 生成对抗网络(GAN)的“对抗“过程解析:从图像合成到药物发现的跨领域应用
  • SpringMVC学习使用
  • 基于Spring Boot的视频点播系统设计与实现(LW+源码+讲解)
  • vue和Django快速创建项目
  • 计算机网络-MPLS基础概念
  • 堡垒机调用xshell 无反应
  • 代码随想录算法【Day45】
  • SpringCloud系列教程:微服务的未来(二十二)RabbitMQ安装部署、快速入门、数据隔离
  • wordpress部署nginx版的
  • 法治课|争议中的“行人安全距离”于法无据,考量“注意义务”才更合理
  • 西北大学副校长范代娣成陕西首富?系家庭财富,本人已从上市公司退出
  • 美国拟向阿联酋和沙特AI公司出口数十万枚芯片
  • 香港暂停进口美国北达科他州一地区禽肉及禽类产品
  • 中方发布会:中美经贸高层会谈氛围是坦诚的、深入的、具有建设性的
  • 哈尔滨工业大学原副校长王魁业逝世,享年92岁