Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# ───────────────────────────────────────────────

# ── Development Stage ─────────────────────────
FROM node:20-alpine AS development
FROM node:25-alpine AS development
WORKDIR /app
RUN apk add --no-cache python3 make g++
COPY package.json package-lock.json* ./
Expand All @@ -20,7 +20,7 @@ EXPOSE 3000 5173
CMD ["npx", "tsx", "watch", "src/server.ts"]

# ── Test Stage ────────────────────────────────
FROM node:20-alpine AS test
FROM node:25-alpine AS test
WORKDIR /app
COPY package.json package-lock.json* ./
RUN npm ci
Expand All @@ -31,7 +31,7 @@ COPY circuits/build/ ./circuits/build/
CMD ["npm", "test"]

# ── Build Stage — API ─────────────────────────
FROM node:20-alpine AS api-build
FROM node:25-alpine AS api-build
WORKDIR /app
COPY package.json package-lock.json* ./
RUN npm ci --ignore-scripts
Expand All @@ -40,15 +40,15 @@ COPY src/ ./src/
RUN npm run build

# ── Build Stage — Dashboard ───────────────────
FROM node:20-alpine AS dashboard-build
FROM node:25-alpine AS dashboard-build
WORKDIR /app/dashboard
COPY dashboard/package.json dashboard/package-lock.json* ./
RUN npm ci --ignore-scripts
COPY dashboard/ ./
RUN npm run build

# ── Production Stage ──────────────────────────
FROM node:20-alpine AS production
FROM node:25-alpine AS production
WORKDIR /app

# Security: run as non-root
Expand Down