added healthcheck to database connection

This commit is contained in:
Edward Tirado Jr 2025-03-30 16:30:27 -05:00
parent 73ce9b6ddf
commit 3947583131
3 changed files with 17 additions and 4 deletions

View file

@ -6,5 +6,4 @@ UID=1000
GID=1000 GID=1000
DATABASE_ENGINE= postgresql_psycopg2 DATABASE_ENGINE= postgresql_psycopg2
DATABASE_HOST=db
DATABASE_PORT=5432 DATABASE_PORT=5432

View file

@ -1,6 +1,7 @@
services: services:
db: db:
image: postgres:17 image: postgres:17
container_name: djangodocker-db
environment: environment:
POSTGRES_DB: ${DATABASE_NAME} POSTGRES_DB: ${DATABASE_NAME}
POSTGRES_USER: ${DATABASE_USERNAME} POSTGRES_USER: ${DATABASE_USERNAME}
@ -11,6 +12,12 @@ services:
- "5432:5432" - "5432:5432"
volumes: volumes:
- djangodocker_data:/var/lib/postgresql/data - djangodocker_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready", "-d", "$DATABASE_NAME"]
interval: 30s
timeout: 60s
retries: 5
start_period: 80s
api: api:
build: . build: .
@ -19,7 +26,8 @@ services:
ports: ports:
- "8000:8000" - "8000:8000"
depends_on: depends_on:
- db db:
condition: service_healthy
environment: environment:
DJANGO_SECRET_KEY: ${DJANGO_SECRET_KEY} DJANGO_SECRET_KEY: ${DJANGO_SECRET_KEY}
DEBUG: ${DEBUG} DEBUG: ${DEBUG}

View file

@ -30,8 +30,13 @@ then
DATABASE_PASSWORD=$(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 15) DATABASE_PASSWORD=$(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 15)
fi fi
echo "user is $DATABASE_USERNAME"
echo "pass is $DATABASE_PASSWORD"
echo "DATABASE_NAME is ${PROJECT_NAME}"
SECRET_KEY=$(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 50) SECRET_KEY=$(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 50)
{ {
echo "DATABASE_HOST=${PROJECT_NAME}-db"
echo "DATABASE_NAME=${PROJECT_NAME}" echo "DATABASE_NAME=${PROJECT_NAME}"
echo "DATABASE_USERNAME=${DATABASE_USERNAME}" echo "DATABASE_USERNAME=${DATABASE_USERNAME}"
echo "DATABASE_PASSWORD=${DATABASE_PASSWORD}" echo "DATABASE_PASSWORD=${DATABASE_PASSWORD}"
@ -47,9 +52,10 @@ echo "===== STARTING DOCKER ====="
docker compose up -d --build docker compose up -d --build
echo "===== MIGRATING DATABASE =====" echo "===== MIGRATING DATABASE ====="
docker exec -ti "${PROJECT_NAME}-api" ./manage.py migrate echo "Running: docker exec -ti ${PROJECT_NAME}-api ./manage.py migrate"
docker exec -ti "${PROJECT_NAME}-api" ./manage.py migrate
echo "===== CREATE SUPERUSER =====" echo "===== CREATE SUPERUSER ====="
docker exec -ti "${PROJECT_NAME}-api" ./manage.py createsuperuser docker exec -ti "${PROJECT_NAME}-api" ./manage.py createsuperuser
echo "Success! Go to http://localhost:8000 to see API documentation." echo "Success! Go to http://localhost:8000 to see API documentation."