# ─── Этап 1: сборка фронтенда ───────────────────────────────────────────── FROM node:22-alpine AS frontend WORKDIR /fe COPY frontend/package.json frontend/package-lock.json* ./ RUN npm install --no-audit --no-fund COPY frontend/ ./ RUN npm run build # ─── Этап 2: бэкенд + статика фронта ────────────────────────────────────── FROM python:3.12-slim WORKDIR /srv COPY backend/requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY backend/app ./app COPY --from=frontend /fe/dist ./frontend_dist ENV LEADRADAR_FRONTEND_DIST=/srv/frontend_dist \ LEADRADAR_DATA=/data \ PYTHONUNBUFFERED=1 EXPOSE 8000 CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]