Tabelle im PostgreSQL-Docker-Image erstellen

Ich bin neu bei Docker. Ich habe das PostgreSQL-Image erweitert und kann eine neue DB-Instanz erstellen, während das Image ausgeführt wird. Ich muss Tabellen in dieser DB aus einem Shellskript erstellen, das eine .sql-Datei ausführt. Während der Ausführung des PostgreSQL-Images wird angezeigt, dass der Server nicht gestartet wurde. Wie können wir ein Skript erst ausführen, nachdem der PostgreSQL-Server im Docker-Container gestartet wurde?

Dockerfile:

FROM postgres:9.3
ENV POSTGRES_USER docker
ENV POSTGRES_PASSWORD docker
ENV POSTGRES_DB docker 
RUN apt-get update && apt-get install -y postgresql-9.3 postgresql-client-9.3 postgresql-contrib-9.3
ADD initialize.sh /home/MM0312/docker-entrypoint-initdb.d/initialize.sh
CMD ["/home/MM0312/docker-entrypoint-initdb.d/initialize.sh"]

initialize.sh

#!/bin/bash
set -e
set -x

echo "******PostgreSQL initialisation******"
gosu docker psql -h localhost -p 5432 -U docker -d $docker -a -f createDatabase.sql

createDatabase.sql file

CREATE TABLE web_origins (
    client_id character varying(36) NOT NULL,
    value character varying(255)
);

Antworten auf die Frage(2)

Ihre Antwort auf die Frage