Eu tenho tentado configurar um contêiner para uma instância de desenvolvimento do postgres, criando um usuário e banco de dados personalizados. Estou usando a imagem oficial do postgres docker . Na documentação, ele instrui a inserir um script bash dentro da /docker-entrypoint-initdb.d/
pasta para configurar o banco de dados com quaisquer parâmetros personalizados.
Meu script bash: 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/
O erro que recebo do docker logs -f db
(db é o nome do meu contêiner) é:
createuser: não foi possível conectar-se ao banco de dados postgres: não foi possível conectar-se ao servidor: esse arquivo ou diretório não existe
Parece que os comandos dentro da /docker-entrypoint-initdb.d/
pasta estão sendo executados antes do postgres ser iniciado. Minha pergunta é: como configuro um usuário / banco de dados programaticamente usando o contêiner oficial do postgres? Existe alguma maneira de fazer isso com um script?
gosu postgres postgres --single < /tmp/somefile.sql