40 lines
2.2 KiB
PowerShell
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
|