आधिकारिक डॉकर छवि की docker-entrypoint.sh स्क्रिप्ट में पोस्टग्रेज की लिखा है:
psql+=( --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" )
echo
for f in /docker-entrypoint-initdb.d/*; do
case "$f" in
*.sh) echo "$0: running $f"; . "$f" ;;
*.sql) echo "$0: running $f"; "${psql[@]}" < "$f"; echo ;;
*.sql.gz) echo "$0: running $f"; gunzip -c "$f" | "${psql[@]}"; echo ;;
*) echo "$0: ignoring $f" ;;
esac
echo
done
तो प्रत्येक .sql फ़ाइल जिसे आप अपनी डॉकर छवि के अंदर निष्पादित करना चाहते हैं, उसे उस फ़ोल्डर के अंदर रखा जा सकता है। तो मेरी dockerfile इस तरह दिखती है
FROM postgres:9.3
ENV POSTGRES_USER docker
ENV POSTGRES_PASSWORD docker
ENV POSTGRES_DB docker
ADD CreateDB.sql /docker-entrypoint-initdb.d/
और मेरे CreateDB.sql की सामग्री:
CREATE TABLE web_origins (
client_id character varying(36) NOT NULL,
value character varying(255)
);
इसलिए मैं अपना कंटेनर इसके साथ शुरू करता हूं:
docker run -d my-postgres
जाँच करने के लिए:
docker exec -it 6250aee43d12 bash
[email protected]:/# psql -h localhost -p 5432 -U docker -d docker
psql (9.3.13)
Type "help" for help.
docker=# \c
You are now connected to database "docker" as user "docker".
docker=# \dt
List of relations
Schema | Name | Type | Owner
--------+-------------+-------+--------
public | web_origins | table | docker
(1 row)
आप इस ब्लॉग में mysql के लिए विवरण प्राप्त कर सकते हैंए> ।