Инициировать экземпляр docker PostgreSQL со структурой базы данных из дампа - PullRequest
0 голосов
/ 14 июля 2020

Я создал структуру postgreSQL db локально, я хочу, чтобы эта структура была структурой таблицы экземпляра postgreSQL, который я буду запускать из экземпляра docker (без ручного восстановления дампа). Я сохранил структуру в дампе и обычно восстанавливаю ее, используя psql myDB < myDB_dump.sql.

У меня есть рабочий PostgreSQL экземпляр, работающий на Docker - с myDB и пользователем, который может получить доступ к базе данных.

docker -compose.yml:

version: '3'
services:
  db:
    image: postgres
    restart: unless-stopped
    ports: 
      - ${DB_PORT}:${DB_PORT}
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USER}
      POSTGRES_DB: ${DB_DATABASE}

Dockerfile:

# psql
RUN apt-get update && apt-get install -y postgresql-client

FROM postgres

ADD init.sql /docker-entrypoint-initdb.d

RUN ./scripts/init_db.sh

init. sql:

CREATE USER my_user WITH PASSWORD my_user;
CREATE DATABASE myDB;
GRANT ALL PRIVILEGES ON DATABASE myDB TO my_user;

Лучшее способ реализовать существующую структуру таблицы в этом экземпляре docker через файл дампа, если да: как? Есть ли лучший способ скопировать структуру БД? Если да, то как лучше всего?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...