# Stage 1 — build
FROM node:22-alpine AS build

WORKDIR /app

COPY package*.json ./
RUN npm ci

COPY . .
RUN npm run build

# Stage 2 — serve
FROM node:22-alpine AS serve

WORKDIR /app

COPY --from=build /app/package*.json ./
RUN npm ci

COPY --from=build /app/dist ./dist
COPY --from=build /app/vite.config.ts ./vite.config.ts

EXPOSE 4173

# Mount config: docker run -v /path/to/config.json:/app/dist/config.json:ro -p 4173:4173 zauberwald
CMD ["npm", "run", "preview"]
