Как импортировать базу данных Postgres в контейнер docker?

Я пытаюсь импортировать дамп PostgreSql в контейнер docker, но это не работает

Dockerfile:

FROM postgres
COPY postgres.sql /docker-entrypoint-initdb.d/

version: "3.9"

docker-compose.yml

services:
  db:
    build: ./DB
    volumes:
      - ./data/db:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=gamenews
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=321678
  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    environment:
      - POSTGRES_NAME=gamenews
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=321678
    depends_on:
      - db

структура:

enter image description here

Я бы посоветовал вам использовать правильный образ Postgres:

  postgres:
    image: postgres:13
    volumes:
      - '.:/app:rw'
      - 'postgres:/var/lib/postgresql/data'

Вот список всех тегов, которые вы можете использовать: https://hub.docker.com/_/postgres

Просто раскрутите его, ваш том отобразит данные на ваш hd, так что они не будут эфемерными в контейнере, затем вы можете запустить pg_restore на вашем файле дампа.

Вернуться на верх