使用docker compose啟動(dòng)postgresql的示例代碼
引言
要在啟動(dòng) PostgreSQL 容器時(shí)執(zhí)行特定的初始化文件,可以使用 Docker 的 docker-entrypoint-initdb.d
目錄。這個(gè)目錄下的 SQL 文件會(huì)在容器啟動(dòng)時(shí)被自動(dòng)執(zhí)行。
下面是如何修改 Docker Compose 配置文件,以便在啟動(dòng)時(shí)執(zhí)行初始化 SQL 腳本:
創(chuàng)建初始化 SQL 腳本文件:
在項(xiàng)目中創(chuàng)建一個(gè) SQL 文件,例如 init.sql
,并將需要執(zhí)行的 SQL 命令寫入其中。確保這個(gè) SQL 文件包含需要的數(shù)據(jù)庫(kù)結(jié)構(gòu)和數(shù)據(jù)。
-- 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
在上面的配置中,我添加了一個(gè) volumes 條目 - ./init-scripts:/docker-entrypoint-initdb.d,這將把本地目錄 ./init-scripts 映射到 PostgreSQL 容器的 docker-entrypoint-initdb.d 目錄下。
啟動(dòng) PostgreSQL 容器:
運(yùn)行以下命令啟動(dòng)的 PostgreSQL 容器,并讓它執(zhí)行初始化 SQL 腳本:
docker-compose up -d
PostgreSQL 容器會(huì)啟動(dòng),并自動(dòng)執(zhí)行 docker-entrypoint-initdb.d 目錄下的 SQL 腳本文件。這樣,數(shù)據(jù)庫(kù)就會(huì)被初始化,表和數(shù)據(jù)會(huì)被創(chuàng)建。
確保 SQL 腳本文件的命名符合 PostgreSQL 的執(zhí)行順序要求(通常按字母順序執(zhí)行)。這樣,就可以在每次啟動(dòng) PostgreSQL 容器時(shí)自動(dòng)初始化數(shù)據(jù)庫(kù)。
到此這篇關(guān)于使用docker compose啟動(dòng)postgresql的示例代碼的文章就介紹到這了,更多相關(guān)docker compose啟動(dòng)postgresql內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- PostgreSQL Docker部署+SpringBoot集成方式
- Docker環(huán)境實(shí)現(xiàn)PostgreSQL自動(dòng)備份的流程步驟
- 從Docker容器中備份整個(gè)PostgreSQL的操作步驟
- Docker安裝PostgreSQL數(shù)據(jù)庫(kù)的詳細(xì)步驟
- 在docker上部署postgreSQL主從的超詳細(xì)步驟
- Docker修改Postgresql密碼的方法詳解
- Docker如何安裝PostgreSQL
- 如何使用Dockerfile創(chuàng)建PostgreSQL數(shù)據(jù)庫(kù)
- docker容器中登陸并操作postgresql的實(shí)現(xiàn)
- 一步步教你用docker部署postgreSQL數(shù)據(jù)庫(kù)
- Docker部署postgresql的方法實(shí)現(xiàn)
相關(guān)文章
PostgreSQL中使用dblink實(shí)現(xiàn)跨庫(kù)查詢的方法
這篇文章主要介紹了PostgreSQL中使用dblink實(shí)現(xiàn)跨庫(kù)查詢的方法,需要的朋友可以參考下2017-05-05在postgreSQL中運(yùn)行sql腳本和pg_restore命令方式
這篇文章主要介紹了在postgreSQL中運(yùn)行sql腳本和pg_restore命令方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01Postgresql之時(shí)間戳long,TimeStamp,Date,String互轉(zhuǎn)方式
這篇文章主要介紹了Postgresql中的時(shí)間戳long,TimeStamp,Date,String互轉(zhuǎn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03解決PostgreSQL 執(zhí)行超時(shí)的情況
這篇文章主要介紹了解決PostgreSQL 執(zhí)行超時(shí)的情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01PostgreSQL教程(二十):PL/pgSQL過(guò)程語(yǔ)言
這篇文章主要介紹了PostgreSQL教程(二十):PL/pgSQL過(guò)程語(yǔ)言,本文講解了、PL/pgSQL概述、PL/pgSQL的結(jié)構(gòu)、聲明、基本語(yǔ)句、控制結(jié)構(gòu)等內(nèi)容,需要的朋友可以參考下2015-05-05PostgreSQL有效地處理數(shù)據(jù)的加密和解密的常見方法
在信息化建設(shè)和等保建設(shè)中,都要求實(shí)現(xiàn)對(duì)用戶數(shù)據(jù)的隱私保護(hù),也就是我們常說(shuō)的脫敏,那么在?PostgreSQL?數(shù)據(jù)庫(kù)中有沒有這樣的方法或者策略可以實(shí)現(xiàn)呢,本文小編將給大家介紹一下PostgreSQL有效地處理數(shù)據(jù)的加密和解密的常見方法,需要的朋友可以參考下2025-03-03PostgreSQL表膨脹監(jiān)控案例(精確計(jì)算)
這篇文章主要介紹了PostgreSQL表膨脹監(jiān)控案例(精確計(jì)算),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01Cenots7 離線安裝部署PostgreSQL 的詳細(xì)過(guò)程
這篇文章主要介紹了Cenots7 離線安裝部署PostgreSQL 的詳細(xì)過(guò)程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10