未在DockerIzed PostgreSQL实例的init上运行SQL架构文件
我正试图在我的数据库中创建一个带有PostgreSQL和pgAdmin的docker容器的表“User”,该容器位于未在DockerIzed PostgreSQL实例的init上运行SQL架构文件,postgresql,docker,Postgresql,Docker,我正试图在我的数据库中创建一个带有PostgreSQL和pgAdmin的docker容器的表“User”,该容器位于docker compose up上 我正在关注这篇文章 DockerFile FROM postgres:latest COPY schema.sql /docker-entrypoint-initdb.d/ docker compose.yaml version: "3.8" services: db: build: . restart
docker compose up
上
我正在关注这篇文章
DockerFile
FROM postgres:latest
COPY schema.sql /docker-entrypoint-initdb.d/
docker compose.yaml
version: "3.8"
services:
db:
build: .
restart: always
environment:
POSTGRES_DB: xxx
POSTGRES_USER: admin
POSTGRES_PASSWORD: xxx
PGDATA: /var/lib/postgresql/data
ports:
- "5432:5432"
volumes:
- db-data:/var/lib/postgresql/data
pgadmin:
image: dpage/pgadmin4:latest
restart: always
environment:
PGADMIN_DEFAULT_EMAIL: admin@xxx.com
PGADMIN_DEFAULT_PASSWORD: xxx
PGADMIN_LISTEN_PORT: 80
ports:
- "8080:80"
volumes:
- pgadmin-data:/var/lib/pgadmin
links:
- "db:pgsql-server"
volumes:
db-data:
pgadmin-data:
create Table Users (
id SERIAL,
uuid VARCHAR(100) NOT NULL
)
schema.sql
version: "3.8"
services:
db:
build: .
restart: always
environment:
POSTGRES_DB: xxx
POSTGRES_USER: admin
POSTGRES_PASSWORD: xxx
PGDATA: /var/lib/postgresql/data
ports:
- "5432:5432"
volumes:
- db-data:/var/lib/postgresql/data
pgadmin:
image: dpage/pgadmin4:latest
restart: always
environment:
PGADMIN_DEFAULT_EMAIL: admin@xxx.com
PGADMIN_DEFAULT_PASSWORD: xxx
PGADMIN_LISTEN_PORT: 80
ports:
- "8080:80"
volumes:
- pgadmin-data:/var/lib/pgadmin
links:
- "db:pgsql-server"
volumes:
db-data:
pgadmin-data:
create Table Users (
id SERIAL,
uuid VARCHAR(100) NOT NULL
)
容器和管理控制台启动正常。但是,未生成该表,并且在pgAdmin中找不到该表
我执行到容器中,文件schema.sql
被很好地复制到/docker entrypoint initdb.d/
目录中
在PostgreSQL Docker存储库中,文档提到我的数据目录必须为空,否则init
文件夹中的文件将不会运行。这可能是我的问题吗
运行容器时,如何在Docked PostgreSQL中创建用户表?如果本地
dbdata
目录中有数据库,则会跳过initdb步骤,因为数据库已初始化。如果数据库中没有需要保留的内容,可以清空dbdata
并启动docker compose。如果本地dbdata
目录中有数据库,则会跳过initdb步骤,因为数据库已初始化。如果数据库中没有需要保留的内容,可以清空dbdata
并启动docker compose。