Я хочу создать базу данных после запуска изображения Postgres Docker.Как создать базу данных в контейнере Postgres Docker?
Проблема в том, что если я поместил свою команду создания базы данных в файл docker-compose или дочерний файл-докере, он переопределит команду базового изображения, чтобы фактически запустить postgres - поэтому у моего psql нет начального сервера для подключения.
т.д .:
version: '2'
services:
db:
command: bash -c "su - postgres -c '/usr/lib/postgresql/9.6/bin/psql -h 127.0.0.1 -p 6543 -U postgres -c \"create database dev;\"'"
environment:
- PGDATA=/pg
- POSTGRES_PASSWORD=postgres
- POSTGRES_USER=postgres
image: postgres:9.6
ports:
- '6543:5432'
tmpfs: /pg
И image documentation не говорит точную команду они работают, чтобы начать Postgres. Я попытался поставить bash -c "postgres && ...
в начале моей команды, но он не сказал мне, что я не могу запустить Postgres как root.
Единственное возможное решение, которое я могу найти, - отказаться от файла docker-compose и dockerfile в пользу решения сценария bash, например docker run postgres:9.6 psql -h postgres -U postgres -c 'create database'
, но это ужасно.
Что делать?