Back

Explore Courses Blog Tutorials Interview Questions
+1 vote
2 views
in DevOps and Agile by (29.3k points)

I have a dump.sql file that I would like to load with docker-compose.

docker-compose.yml:

services:

  postgres:

    environment:

      POSTGRES_DB: my_db_name

      POSTGRES_USER: my_name

      POSTGRES_PASSWORD: my_password

    build:

      context: .

      dockerfile: ./devops/db/Dockerfile.db

My Dockerfile.db is really simple at the moment:

FROM postgres

MAINTAINER me <[email protected]>

COPY ./devops/db ./devops/db

WORKDIR ./devops/db

I would like to run a command like psql my_db_name < dump.sql at some point. If I run a script like this from the Dockerfile.db, the issue is that the script is run after build but before docker-compose up, and the database is not running yet.

Any idea how to do this?

1 Answer

0 votes
by (50.2k points)
edited by

After going through the documentation 

https://hub.docker.com/_/postgres/ 

It explains that any .sql in /docker-entrypoint-initdb.d will be executed after build.

For this, you just need to make small changes in Dockerfile.db

FROM postgres

ADD ./devops/db/dummy_dump.sql /docker-entrypoint-initdb.d

This will work for your query.

For more information please go through the following tutorial to get more info about docker:

Browse Categories

...