Files
pragativeer-v2/build.ps1

40 lines
2.2 KiB
PowerShell

#!/usr/bin/env powershell
# build.ps1 — Clean, fast Docker build script for PragatiVeer v2
# ─────────────────────────────────────────────────────────────────────────
# What this script does:
# 1. Enables Docker BuildKit (required for --mount=type=cache to work)
# 2. Runs `docker compose build --parallel` which:
# - Builds backend image ONCE and tags it as pragativeer-backend:local
# - worker + beat containers reuse that image (no rebuild)
# - BuildKit caches pip wheels and npm packages between builds
# ─────────────────────────────────────────────────────────────────────────
$env:DOCKER_BUILDKIT = "1"
$env:COMPOSE_DOCKER_CLI_BUILD = "1"
Write-Host "═══════════════════════════════════════════════" -ForegroundColor Cyan
Write-Host " PragatiVeer v2 — Optimised Docker Build" -ForegroundColor Cyan
Write-Host "═══════════════════════════════════════════════" -ForegroundColor Cyan
Write-Host ""
Write-Host "▶ BuildKit enabled (cache mounts active)" -ForegroundColor Green
Write-Host "▶ Building backend image first..." -ForegroundColor Yellow
# Build backend image first so worker/beat can reuse it
docker compose build backend
Write-Host ""
Write-Host "▶ Building remaining services in parallel..." -ForegroundColor Yellow
# Build remaining services (frontend, etc.)
docker compose build --parallel frontend
Write-Host ""
Write-Host "✔ Build complete. Starting services..." -ForegroundColor Green
docker compose up -d
Write-Host ""
Write-Host "✔ All services started." -ForegroundColor Green
Write-Host " Frontend: http://localhost:3000" -ForegroundColor Cyan
Write-Host " Backend: http://localhost:8000" -ForegroundColor Cyan
Write-Host " MinIO: http://localhost:9001" -ForegroundColor Cyan