I know I'm probably the last one to find this out, but this has been an issue for a long time for me. I've been constantly building and storing SQL files in the actual container layers, thinking that was the correct way to do it. Thankfully, I was completely wrong.
Here is the correct way to do it.
Assuming you are in a directory with the SQL files you want.
FROM postgres:12.8 COPY *.sql /docker-entrypoint-initdb.d/
On startup Postgres will load the SQL files into the database. I've wasted a lot of time doing it the other way and somehow missed this the entire time. Hopefully I save you a bunch of time!
FROM mongo:4.2 COPY dump /docker-entrypoint-initdb.d/ COPY restore.sh /docker-entrypoint-initdb.d/
restore.sh script is below.
#!/bin/bash cd /docker-entrypoint-initdb.d || exit ls -ahl mongorestore /docker-entrypoint-initdb.d/
Just do a
mongodump into a directory called
dump and then when you want it, load the data with the
restore.sh script inside the container.