Если вы посмотрите на стандартный postgres
сценарий точки входа изображения , механизм поддержки каталога /docker-entrypoint-initdb.d
довольно сложен: ему нужно загрузить каталог базы данных и исходных пользователя и базу данных, затем он запустится сервер базы данных в фоновом режиме и выполняет все в этом каталоге, и, наконец, запускает базу данных по-настоящему. Если вы пытаетесь повторить эту настройку, вы должны выполнить все эти шаги самостоятельно.
Есть и другие способы настройки базы данных. Вы можете создать пустую базу данных, а затем запустить миграции вашего приложения в обычном режиме, чтобы создать исходную схему. Если у вас есть файл SQL, который вы обычно запускаете для базы данных с клиентским инструментом psql
, вы можете сделать то же самое с Docker
docker run -d -p 5432:5432 --name postgres postgres:12
psql -h localhost < db.sql