使用docker compose启动postgresql的示例代码

 更新时间:2024年10月16日 08:55:26   作者:Kwan的解忧杂货铺  
要在启动 PostgreSQL 容器时执行特定的初始化文件,可以使用 Docker 的 docker-entrypoint-initdb.d 目录,这个目录下的 SQL 文件会在容器启动时被自动执行,下面是如何修改 Docker Compose 配置文件,以便在启动时执行初始化 SQL 脚本,需要的朋友可以参考下

引言

要在启动 PostgreSQL 容器时执行特定的初始化文件,可以使用 Docker 的 docker-entrypoint-initdb.d 目录。这个目录下的 SQL 文件会在容器启动时被自动执行。

下面是如何修改 Docker Compose 配置文件,以便在启动时执行初始化 SQL 脚本:

创建初始化 SQL 脚本文件:

在项目中创建一个 SQL 文件,例如 init.sql,并将需要执行的 SQL 命令写入其中。确保这个 SQL 文件包含需要的数据库结构和数据。

-- init.sql
CREATE TABLE IF NOT EXISTS users (
    id SERIAL PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    password VARCHAR(100) NOT NULL
);

INSERT INTO users (username, password) VALUES ('admin', 'admin123');

更新 Docker Compose 配置:

在 docker-compose.yml 文件中,添加 volumes 配置,将包含初始化 SQL 脚本的目录映射到 PostgreSQL 容器的 docker-entrypoint-initdb.d 目录。

version: "3.8"

services:
  postgresql:
    container_name: postgresql
    image: 172.18.x.xxx:5000/postgres:15-alpine
    restart: always
    environment:
      POSTGRES_PASSWORD: dify
      POSTGRES_DB: dify
      PGDATA: /var/lib/postgresql/data/pgdata
    volumes:
      - ./volumes/db/test/data:/var/lib/postgresql/data
      - ./init-scripts:/docker-entrypoint-initdb.d
    ports:
      - "5432:5432"
    networks:
      - ssrf_proxy_network

networks:
  ssrf_proxy_network:
    driver: bridge
    internal: true

在上面的配置中,我添加了一个 volumes 条目 - ./init-scripts:/docker-entrypoint-initdb.d,这将把本地目录 ./init-scripts 映射到 PostgreSQL 容器的 docker-entrypoint-initdb.d 目录下。

启动 PostgreSQL 容器:

运行以下命令启动的 PostgreSQL 容器,并让它执行初始化 SQL 脚本:

docker-compose up -d

PostgreSQL 容器会启动,并自动执行 docker-entrypoint-initdb.d 目录下的 SQL 脚本文件。这样,数据库就会被初始化,表和数据会被创建。

确保 SQL 脚本文件的命名符合 PostgreSQL 的执行顺序要求(通常按字母顺序执行)。这样,就可以在每次启动 PostgreSQL 容器时自动初始化数据库。

到此这篇关于使用docker compose启动postgresql的示例代码的文章就介绍到这了,更多相关docker compose启动postgresql内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • PostgreSQL中使用dblink实现跨库查询的方法

    PostgreSQL中使用dblink实现跨库查询的方法

    这篇文章主要介绍了PostgreSQL中使用dblink实现跨库查询的方法,需要的朋友可以参考下
    2017-05-05
  • 在postgreSQL中运行sql脚本和pg_restore命令方式

    在postgreSQL中运行sql脚本和pg_restore命令方式

    这篇文章主要介绍了在postgreSQL中运行sql脚本和pg_restore命令方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • Postgresql之时间戳long,TimeStamp,Date,String互转方式

    Postgresql之时间戳long,TimeStamp,Date,String互转方式

    这篇文章主要介绍了Postgresql中的时间戳long,TimeStamp,Date,String互转方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Postgresql主从异步流复制方案的深入探究

    Postgresql主从异步流复制方案的深入探究

    这篇文章主要给大家介绍了关于Postgresql主从异步流复制方案的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Postgresql具有一起的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-10-10
  • Postgresql查询效率计算初探

    Postgresql查询效率计算初探

    这篇文章主要给大家介绍了关于Postgresql查询效率计算的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Postgresql具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • 解决PostgreSQL 执行超时的情况

    解决PostgreSQL 执行超时的情况

    这篇文章主要介绍了解决PostgreSQL 执行超时的情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • PostgreSQL教程(二十):PL/pgSQL过程语言

    PostgreSQL教程(二十):PL/pgSQL过程语言

    这篇文章主要介绍了PostgreSQL教程(二十):PL/pgSQL过程语言,本文讲解了、PL/pgSQL概述、PL/pgSQL的结构、声明、基本语句、控制结构等内容,需要的朋友可以参考下
    2015-05-05
  • PostgreSQL有效地处理数据的加密和解密的常见方法

    PostgreSQL有效地处理数据的加密和解密的常见方法

    在信息化建设和等保建设中,都要求实现对用户数据的隐私保护,也就是我们常说的脱敏,那么在 PostgreSQL 数据库中有没有这样的方法或者策略可以实现呢,本文小编将给大家介绍一下PostgreSQL有效地处理数据的加密和解密的常见方法,需要的朋友可以参考下
    2025-03-03
  • PostgreSQL表膨胀监控案例(精确计算)

    PostgreSQL表膨胀监控案例(精确计算)

    这篇文章主要介绍了PostgreSQL表膨胀监控案例(精确计算),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • Cenots7 离线安装部署PostgreSQL 的详细过程

    Cenots7 离线安装部署PostgreSQL 的详细过程

    这篇文章主要介绍了Cenots7 离线安装部署PostgreSQL 的详细过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10

最新评论