DEV Community

Cover image for Multiple Postgres databases in a single Docker container

Multiple Postgres databases in a single Docker container

Bartosz Gordon on November 07, 2019

This will be a short one. The official Postgres Docker image supports a few environment variables. One of them, POSTGRES_DB, is responsible for ho...
Collapse
 
dariansampare profile image
Darian Sampare

Anyone ever run into permission issues running the script?

For example:

server started

/usr/local/bin/docker-entrypoint.sh: running /docker-entrypoint-initdb.d/create-multiple-postgres-databases.sh

/usr/local/bin/docker-entrypoint.sh: /docker-entrypoint-initdb.d/create-multiple-postgres-databases.sh: /bin/bash: bad interpreter: Permission denied

Collapse
 
dariansampare profile image
Darian Sampare

Well... in case any other poor soul stumbles onto this problem, you have to set the script as executable because Docker copies over permissions...

chmod +x pg-init-scripts/create-multiple-postgres-databases.sh
Enter fullscreen mode Exit fullscreen mode
Collapse
 
pederfosse profile image
PederFosse

I created an account just to thank you

Thread Thread
 
dariansampare profile image
Darian Sampare

😂 Your welcome!

Collapse
 
danicunhac profile image
Daniel Costa

I also created an account just to thank you

Collapse
 
ykachube profile image
mr Robot

I also created an account just to thank you

Collapse
 
ditharahma12 profile image
Rahmaditha

i've already done that. but still no database created

Thread Thread
 
danicunhac profile image
Daniel Costa

You'll need to then run docker-compose up -d again and if needed, create your new database from an sql script.

Collapse
 
resulyrt93 profile image
Resul Yurttakalan

I figure out this problem with change volume config. Don't attach whole /docker-entrypoint-initdb.d directory as volume. Then not permitted a directory copied to container. Solution was add all files one by one. like below;

volumes:
      - ./db_init/db_init.sh:/docker-entrypoint-initdb.d/db_init.sh 
Enter fullscreen mode Exit fullscreen mode
Collapse
 
ian_waghorne profile image
Ian Waghorne

The server seems to shut down when the DBs are created

Multiple databases created
LOG: received fast shutdown request
waiting for server to shut down...LOG: aborting any active transactions
LOG: autovacuum launcher shutting down
.LOG: shutting down
LOG: database system is shut down
done
server stopped
PostgreSQL init process complete; ready for start up.

Collapse
 
sebtrif profile image
Sebastian Trif

Thanks for sharing this!

Wondering if you found anything else since you wrote this article that may be helpful or did you end up sticking with the approach you wrote here?