当前位置: 首页 > 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 容器,并根据所选的方法之一设置时区。

http://www.dtcms.com/a/17644.html

相关文章:

  • 力扣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版的
  • Unity使用反射进行Protobuf(CS/SC)协议,json格式
  • 【Audio】Android 10车载音频路由
  • Qt:Qt网络
  • 智能背后的阴影:LLM安全风险
  • C语言中隐式类型转换 截断和整型提升
  • 电脑出现蓝屏英文怎么办?查看修复过程
  • 介绍几款免费的显示器辅助工具!
  • Windows系统中常用的命令
  • 如何使用ADB进行WIFI调试
  • 零售行业线下门店的AI知识库应用实践