From 6552783d6429d8e886c3bfdc01406de0394cc42d Mon Sep 17 00:00:00 2001 From: ramvignesh-b Date: Thu, 23 Apr 2026 17:31:52 +0530 Subject: [PATCH] chore: improve development startup reliability --- docker-compose.yml | 2 -- scripts/start.sh | 46 +++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 43 insertions(+), 5 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index a61d6bd..a44b251 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,6 @@ services: db: # postgres database image: postgres:16-alpine - container_name: piku_db environment: POSTGRES_DB: ${DB_NAME} POSTGRES_USER: ${DB_USER} @@ -16,7 +15,6 @@ services: mailpit: # email testing image: axllent/mailpit - container_name: piku_mail ports: - "8025:8025" # Web UI - "${EMAIL_PORT}:1025" # SMTP diff --git a/scripts/start.sh b/scripts/start.sh index bcdb0ec..c7c4281 100755 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -1,4 +1,44 @@ #!/bin/bash -(podman compose up -d) & -(cd backend && uv run manage.py serve) & -(cd frontend && bun run dev) + +# Change this if you're using docker or docker-compose +CONTAINER_BIN="podman" + +cleanup() { + echo 'Stopping dev containers and processes...' + $CONTAINER_BIN compose -p pi_ku down --remove-orphans + [ -n "${BACKEND_PID:-}" ] && kill "$BACKEND_PID" 2>/dev/null + [ -n "${FRONTEND_PID:-}" ] && kill "$FRONTEND_PID" 2>/dev/null +} + +# source .env +set -a +source .env +set +a + +trap cleanup EXIT +trap 'exit 130' INT +trap 'exit 143' TERM + +echo "$PWD" +$CONTAINER_BIN compose -p pi_ku up -d + +# wait for db to be ready +DB_CONTAINER=$($CONTAINER_BIN ps -q --filter label=com.docker.compose.service=db) +until $CONTAINER_BIN exec "$DB_CONTAINER" pg_isready -U $DB_USER; do + echo "Waiting for DB $DB_CONTAINER to be ready... $DB_USER" + sleep 1 +done + +( + cd backend || exit 1 + uv run manage.py serve +) & +BACKEND_PID=$! + +( + cd frontend || exit 1 + bun run dev +) & +FRONTEND_PID=$! + +wait