Как автоматически создавать БД при старте контейнера PostgreSQL?

Roman Sedov


2 1005 Visits

Допустим, нам необходимо инициализировать ещё одну БД в отличие от той, что указана, например, в переменной окружения $POSTGRES_DB. Определим следующий скрипт:

create database "<dbname>" with owner "<ownername>";

Кладём этот скрипт в папку, которую маунтим, например для docker compose:

  postgres_db:
    environment:
      POSTGRES_DB: ${DB_DBNAME}
      POSTGRES_USER: ${DB_DBUSER}
      POSTGRES_PASSWORD: ${DB_DBPASSWORD}
    volumes:
      - ./scripts/init-another-db.sql:/docker-entrypoint-initdb.d/init-another-db.sql

При инициализации, PostgreSQL автоматически выполнит этот скрипт. В целом, выполнятся все скрипты, которые будут находиться в папке /docker-entrypoint-initdb.d во время инициализации.


Comments


DvwHZaZMVtraeQ

12.03.2025


mpXbEubntO

11.03.2025