Я пытаюсь настроить контейнер для экземпляра postgres разработки, создав пользовательский пользователь и базу данных. Я использую официальное изображение докеры postgres. В документации он инструктирует вас вставить bash script внутри папки /docker-entrypoint-initdb.d/
, чтобы настроить базу данных с любыми настраиваемыми параметрами.
Мой bash script: make_db.sh
su postgres -c "createuser -w -d -r -s docker"
su postgres -c "createdb -O docker docker"
Dockerfile
FROM library/postgres
RUN ["mkdir", "/docker-entrypoint-initdb.d"]
ADD make_db.sh /docker-entrypoint-initdb.d/
Ошибка, полученная из docker logs -f db
(db - мое имя контейнера):
createuser: не удалось подключиться к базе данных postgres: не удалось подключиться к серверу: нет такого файла или каталога
Кажется, что команды внутри папки /docker-entrypoint-initdb.d/
выполняются до запуска postgres. Мой вопрос: как я могу настроить пользователя/базу данных программным путем с помощью официального контейнера postgres? Есть ли способ сделать это с помощью script?