Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未在DockerIzed PostgreSQL实例的init上运行SQL架构文件_Postgresql_Docker - Fatal编程技术网

未在DockerIzed PostgreSQL实例的init上运行SQL架构文件

未在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

我正试图在我的数据库中创建一个带有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: 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。