build(docker): add multi-stage build for SvelteKit dashboard
All checks were successful
CVE Scan & Docker Build / security-scan (push) Successful in 38s
CVE Scan & Docker Build / build-and-push (push) Successful in 1m20s

This commit is contained in:
2026-06-12 18:32:27 -04:00
parent 636f43aa60
commit dd1b5b7318

View File

@@ -1,3 +1,15 @@
# ── Stage 1: build the SvelteKit dashboard ──
FROM node:24-slim AS dashboard-build
WORKDIR /dashboard
COPY dashboard/package.json dashboard/package-lock.json ./
RUN npm ci
COPY dashboard/ ./
RUN npm run build
# ── Stage 2: Python runtime ──
FROM python:3.12-slim FROM python:3.12-slim
WORKDIR /app WORKDIR /app
@@ -9,6 +21,10 @@ RUN apt-get update \
COPY . . COPY . .
RUN pip install --no-cache-dir . RUN pip install --no-cache-dir .
# dashboard/build is .dockerignored from the host context; copy the freshly
# built dashboard from stage 1 so FastAPI can serve it at /app/dashboard/build
COPY --from=dashboard-build /dashboard/build ./dashboard/build
EXPOSE 8000 EXPOSE 8000
CMD ["python", "run.py"] CMD ["python", "run.py"]