DEVESH MASANE
Posted on March 3, 2024
Hello everyone,
Sharing a quick setup guide for PostgreSQL docker-compose to get your local development started.
Prerequisite: Docker & docker-compose installed
Let's Start
Please create a new yml file(I created postgres-local.yml).
Select the version of Postgres from Dockerhub that you wish to use. I will be using:
- postgres:16.2-alpine
Edit the yml file
services:
local-postgres-service:
container_name: local-postgresql
image: postgres:16.2-alpine
local-postgres-service - Name of service
local-postgresql - Name of docker container
postgres:16.2-alpine - postgres image with tag from Dockerhub
Now, we need to set the environment variables for our PostgreSQL
services:
local-postgres-service:
container_name: local-postgresql
image: postgres:16.2-alpine
environment:
POSTGRES_USER: postgres_user
POSTGRES_PASSWORD: pass123
POSTGRES_DB: local-db
postgres_user - username
pass123 - password
local-db - database name
To connect with this postgres container we need to bind port. Postgres container will run at port 5432, we will bind this to port 5000.
services:
local-postgres-service:
container_name: local-postgresql
image: postgres:16.2-alpine
environment:
POSTGRES_USER: postgres_user
POSTGRES_PASSWORD: pass123
POSTGRES_DB: local-db
ports:
- "5000:5432"
We need to make the data persistent using docker volumes.
services:
local-postgres-service:
container_name: local-postgresql
image: postgres:16.2-alpine
environment:
POSTGRES_USER: postgres_user
POSTGRES_PASSWORD: pass123
POSTGRES_DB: local-db
ports:
- "5000:5432"
volumes:
- local-postgres-volume:/var/lib/postgresql/data
volumes:
local-postgres-volume:
local-postgres-volume - volume name where data will persist
/var/lib/postgresql/data - path of data inside postgres container
Finally, let's add this to a docker network
services:
local-postgres-service:
container_name: local-postgresql
image: postgres:16.2-alpine
environment:
POSTGRES_USER: postgres_user
POSTGRES_PASSWORD: pass123
POSTGRES_DB: local-db
ports:
- "5000:5432"
volumes:
- local-postgres-volume:/var/lib/postgresql/data
networks:
- local-postgres-network
volumes:
local-postgres-volume:
networks:
local-postgres-network:
local-postgres-network - docker network name
Start the container in detach mode using:
docker compose -f postgres-local.yml up -d
Stop the container using:
docker compose -f postgres-local.yml stop
Let's check the connection to our postgres container
Thank you for reading !!!
Posted on March 3, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.