22 pages across Diataxis quadrants (start / how-to / reference / explain). Custom amber-on-charcoal theme, wire-dump hero animation, Supported Systems footer badge. caddy-docker-proxy deployment with prod + dev profiles, Makefile with prod/dev/down/logs/local targets.
31 lines
913 B
Docker
31 lines
913 B
Docker
ARG NODE_VERSION=22-alpine
|
|
ARG CADDY_VERSION=2.10-alpine
|
|
|
|
FROM node:${NODE_VERSION} AS deps
|
|
WORKDIR /app
|
|
COPY package.json package-lock.json* ./
|
|
RUN --mount=type=cache,target=/root/.npm \
|
|
npm ci --no-audit --no-fund 2>/dev/null || npm install --no-audit --no-fund
|
|
|
|
FROM node:${NODE_VERSION} AS builder
|
|
WORKDIR /app
|
|
ENV ASTRO_TELEMETRY_DISABLED=1 NODE_ENV=production
|
|
COPY --from=deps /app/node_modules ./node_modules
|
|
COPY . .
|
|
RUN npm run build
|
|
|
|
FROM caddy:${CADDY_VERSION} AS prod
|
|
COPY --from=builder /app/dist /srv
|
|
COPY Caddyfile /etc/caddy/Caddyfile
|
|
EXPOSE 80
|
|
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
|
|
CMD wget -q --spider http://127.0.0.1/ || exit 1
|
|
|
|
FROM node:${NODE_VERSION} AS dev
|
|
WORKDIR /app
|
|
ENV ASTRO_TELEMETRY_DISABLED=1 NODE_ENV=development
|
|
COPY --from=deps /app/node_modules ./node_modules
|
|
COPY . .
|
|
EXPOSE 4321
|
|
CMD ["npm", "run", "dev", "--", "--host", "0.0.0.0"]
|