27 lines
476 B
Docker
27 lines
476 B
Docker
# 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"]
|