mcesptool/docs-site/Dockerfile
Ryan Malloy b2ba0cd67a Upgrade to FastMCP 3.x, add Starlight docs site
Dependency changes:
- fastmcp >=2.12.4 → >=3.0.2,<4
- Drop asyncio-mqtt (dead dependency, never imported)
- Align pydantic, click, rich with FastMCP 3.x
- Bump version to 2026.02.23

Docs site (docs-site/):
- Astro Starlight with Tailwind v4 teal theme
- 28 pages following Diataxis: 3 tutorials, 7 how-to guides,
  13 reference pages, 4 explanation pages
- Docker infrastructure (Caddy prod, Node HMR dev)
- Configured for mcesptool.warehack.ing
2026-02-23 18:57:16 -07:00

50 lines
923 B
Docker

FROM node:22-slim AS base
ENV ASTRO_TELEMETRY_DISABLED=1
WORKDIR /app
# Install dependencies
FROM base AS deps
COPY package.json package-lock.json* ./
RUN npm ci
# Build static site
FROM deps AS build
COPY . .
RUN npm run build
# Production: serve from Caddy
FROM caddy:2-alpine AS prod
COPY --from=build /app/dist /srv
COPY <<'CADDYFILE' /etc/caddy/Caddyfile
:80 {
root * /srv
file_server
encode gzip
@hashed path /_astro/*
header @hashed Cache-Control "public, max-age=31536000, immutable"
@unhashed not path /_astro/*
header @unhashed Cache-Control "public, max-age=3600"
handle_errors {
@404 expression {err.status_code} == 404
handle @404 {
rewrite * /404.html
file_server
}
}
try_files {path} {path}/ /index.html
}
CADDYFILE
EXPOSE 80
# Development: Node with HMR
FROM deps AS dev
ENV ASTRO_TELEMETRY_DISABLED=1
COPY . .
EXPOSE 4321
CMD ["npm", "run", "dev", "--", "--host", "0.0.0.0"]