| 1234567891011121314 |
- # Multi-stage: build with Node, serve with Caddy
- FROM node:22-alpine AS builder
- WORKDIR /app
- COPY package.json package-lock.json* ./
- RUN npm install --no-audit --no-fund
- COPY . .
- RUN npm run build
- # Production: serve static files with Caddy
- FROM caddy:2-alpine
- COPY --from=builder /app/dist /srv
- COPY Caddyfile.production /etc/caddy/Caddyfile
- EXPOSE 80
|