Ich habe versucht, einen Container für eine Entwicklungs-Postgres-Instanz einzurichten, indem ich einen benutzerdefinierten Benutzer & Datenbank erstelle. Ich verwende das offizielle Postgres Docker-Image. In der Dokumentation wird darauf hingewiesen, dass ein Bash-Skript in den /docker-entrypoint-initdb.d/
-Ordner eingefügt werden muss, um die Datenbank mit benutzerdefinierten Parametern einzurichten.
Mein Bash-Skript: 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/
Der Fehler, den ich von den docker logs -f db
(db ist mein Containername) erhalte, ist:
createuser: konnte keine Verbindung zur Datenbank postgres herstellen: konnte keine Verbindung zum Server herstellen: Keine Datei oder Verzeichnis
Es scheint, dass die Befehle innerhalb des /docker-entrypoint-initdb.d/
-Ordners ausgeführt werden, bevor Postgres gestartet wird. Meine Frage ist, wie richte ich einen Benutzer/Datenbank programmatisch mit dem offiziellen Postgres-Container ein? Gibt es einen Weg, dies mit einem Skript zu tun?