Dockerfile 355 B

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