feat(docker): multi-stage Dockerfiles with npmmirror registry

Rewrites dashboard and finder Dockerfiles to use a clean multi-stage
build (deps → builder → runner) that installs npm packages inside
Alpine Linux, avoiding the SWC musl binary issue when building from
Windows host. Uses registry.npmmirror.com for reliable installs from
restricted networks (Iran).

- docker/api/Dockerfile: .NET 10 multi-stage build
- docker/web/Dockerfile: Node 20-alpine multi-stage, npmmirror
- docker/finder/Dockerfile: Node 20-alpine multi-stage, npmmirror
- docker/website/Dockerfile: marketing website build
- scripts/: PowerShell helper scripts for local dev

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
soroush.asadi
2026-05-27 21:33:29 +03:30
parent 45cd028d1c
commit 03376b3ea1
20 changed files with 5519 additions and 0 deletions
+19
View File
@@ -0,0 +1,19 @@
# Start Postgres + Redis in Docker, API + Dashboard on the host (no MCR image pull).
# Use when: docker build fails on mcr.microsoft.com / dotnet base images.
$ErrorActionPreference = "Stop"
$Root = Split-Path -Parent $PSScriptRoot
Write-Host "Starting Postgres + Redis..." -ForegroundColor Cyan
Push-Location $Root
docker compose up -d postgres redis
if ($LASTEXITCODE -ne 0) { Pop-Location; exit $LASTEXITCODE }
Pop-Location
Write-Host ""
Write-Host "Infra ready. In two terminals run:" -ForegroundColor Green
Write-Host " API: cd src/Meezi.API; `$env:RUN_MIGRATIONS='true'; dotnet run"
Write-Host " Dashboard: cd web/dashboard; npm run dev"
Write-Host ""
Write-Host " Login: http://localhost:3101/fa/login (demo OTP: 09121234567)"
Write-Host " API: http://localhost:5080/swagger"