docker系列使用docker-compose启动postgresql
【docker系列】使用docker compose启动postgresql
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
- 推荐: ,持续学习,不断总结,共同进步,活到老学到老
- 导航
- :全面总结 java 核心技术,jvm,并发编程 redis,kafka,Spring,微服务等
- :常用的开发工具,IDEA,Mac,Alfred,Git,typora 等
- :详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
- :提供各种软件服务,承接各种毕业设计,毕业论文等
- :总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
- :总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨
博客目录
要在启动 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 容器时自动初始化数据库。
觉得有用的话点个赞
👍🏻
呗。❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙