added healthcheck to database connection
This commit is contained in:
parent
73ce9b6ddf
commit
3947583131
3 changed files with 17 additions and 4 deletions
|
@ -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
|
||||||
|
|
|
@ -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}
|
||||||
|
|
10
firstRun.sh
10
firstRun.sh
|
@ -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."
|
||||||
|
|
Loading…
Add table
Reference in a new issue