# 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"]