Jestem nowy w oknie dokowanym. Mam rozszerzony obraz PostgreSQL i mogę utworzyć nową instancję DB podczas uruchamiania obrazu. Muszę utworzyć tabele w tym DB ze skryptu powłoki, który wykona plik .sql. Podczas pracy z obrazem PostgreSQL jest napisane, że serwer nie został uruchomiony? jak możemy uruchomić skrypt tylko po uruchomieniu serwera PostgreSQL w kontenerze Docker?Utwórz tabelę w oknie dokowanym PostgreSQL
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 plik
REATE TABLE web_origins (
client_id character varying(36) NOT NULL,
value character varying(255)
);
dziękuję, zadziałało. –
Jak sobie z tym poradzić przy komponowaniu dockera? – kamal
Czy wystarczy skopiować to, jak widzę w moim przypadku db.sql jest kopiowany w katalogu docker-entrypoint-initdb.d, ale polecenia sql nie działały. – kamal