# syntax=docker/dockerfile:1 # gr-sarsat-modern documentation site # Multi-stage build for Astro/Starlight # ───────────────────────────────────────────────────────────── # Development stage - with hot reload # ───────────────────────────────────────────────────────────── FROM node:22-bookworm-slim AS dev WORKDIR /app COPY package*.json ./ RUN npm ci # Source mounted as volume in docker-compose EXPOSE 4321 ENV HOST=0.0.0.0 ENV ASTRO_TELEMETRY_DISABLED=1 CMD ["npm", "run", "dev", "--", "--host", "0.0.0.0"] # ───────────────────────────────────────────────────────────── # Build stage - generate static site # ───────────────────────────────────────────────────────────── FROM node:22-bookworm-slim AS builder WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . ENV ASTRO_TELEMETRY_DISABLED=1 RUN npm run build # ───────────────────────────────────────────────────────────── # Production stage - serve static files with Caddy # ───────────────────────────────────────────────────────────── FROM caddy:2-alpine AS prod COPY --from=builder /app/dist /srv COPY <