J'ai essayé de mettre en place un conteneur pour une instance postgres de développement en créant un utilisateur et une base de données personnalisés. J'utilise l' image Docker officielle de PostgreSQL . Dans la documentation, il vous demande d'insérer un script bash à l'intérieur du /docker-entrypoint-initdb.d/
dossier pour configurer la base de données avec tous les paramètres personnalisés.
Mon 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/
L'erreur que j'obtiens de docker logs -f db
(db est mon nom de conteneur) est:
createuser: impossible de se connecter à la base de données postgres: impossible de se connecter au serveur: aucun fichier ou répertoire de ce type
Il semble que les commandes à l'intérieur du /docker-entrypoint-initdb.d/
dossier soient exécutées avant le démarrage de postgres. Ma question est, comment puis-je configurer un utilisateur / base de données par programmation en utilisant le conteneur officiel postgres? Existe-t-il un moyen de le faire avec un script?
gosu postgres postgres --single < /tmp/somefile.sql