docker-compose.yml, postgress, как настроить db, таблицы и prepop в файле init.sql? - PullRequest
0 голосов
/ 11 декабря 2018

Я хотел бы добавить базу данных, таблицу и предварительно заполнить каким-нибудь файлом init.sql.не уверен, как выглядит файл init.sql.Также не уверен, где я буду помещать команду ADD.

Этот файл docker-compose.yml работает

version: '3.6'
services:
  postgre:
    image: postgres:11.1-alpine
    ports:
      - "5432"
    environment:
      POSTGRES_USER: 'user'
      POSTGRES_PASSWORD: 'password'
      POSTGRESS_DB: 'db_amex01'
    volumes:
      - ./init:/docker-entrypoint-initdb.d/

1 Ответ

0 голосов
/ 11 декабря 2018

Вы можете добавить *.sh скрипт (ы) и / или *.sql инструкции в каталог /docker-entrypoint-initdb.d/ (в основном, как у вас уже есть в вашем файле docker-compose.yml).

ПримерСценарий оболочки для создания пользователя:

#!/bin/bash
set -e

psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
    CREATE USER docker;
    CREATE DATABASE docker;
    GRANT ALL PRIVILEGES ON DATABASE docker TO docker;
EOSQL

Вы можете сгенерировать файл .sql из существующей базы данных, "сбросив" данные с помощью psql -U <username> -d <dbname> -1 -f <filename>.sql.Затем вы можете добавить файл .sql в каталог ./init/.

Это задокументировано в https://github.com/docker-library/docs/tree/master/postgres#how-to-extend-this-image.

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