Github: https://github.com/mnahkies/ephemeral-postgres
3.4K
A bash script that starts an ephemeral postgres locally in docker for development purposes.
Data is destroyed between runs, on Linux the data is stored on a tmpfs / ramdisk
for faster startup.
The container loads a ClientAuthentication hook ensure_role_and_database_exists that
automatically creates roles & databases that don't exist when connections are made.
This allows you to just start the container and not worry about pre-creating users or databases for your integration test suites, etc.
By default, it will create users with LOGIN CREATEDB and authenticate using TRUST but
this can be customized with the environment variables below.
Prebuild images are pulled from dockerhub automatically for recent postgres versions.
docker to be installed https://docs.docker.com/engine/install/$PATHStart the postgres server:
start-ephemeral-postgres.sh
Options
POSTGRES_VERSION=17POSTGRES_PASSWORD=postgresPOSTGRES_HOST_AUTH_METHOD=trust - could be scram-sha-256 / md5 / etcROLE_ATTRIBUTES='LOGIN CREATEDB' - could be SUPERUSER / CREATEROLE BYPASSRLS / etcFORCE_BUILD=0 - force building the docker image locally instead of pulling a prebuilt imageConnect using psql:
docker exec -it postgres psql -U postgres postgres
docker exec -it postgres psql -U any_username any_database_name
See https://github.com/taminomara/psql-hooks for the unofficial documentation of Postgresql hooks
These slides are also a good reference: https://wiki.postgresql.org/images/e/e3/Hooks_in_postgresql.pdf
Content type
Image
Digest
sha256:9ad727a53…
Size
212.7 MB
Last updated
about 10 hours ago
docker pull mnahkies/ephemeral-postgres:14