gr-mcp/docs/Dockerfile
Ryan Malloy 3fe862109d add docs site deployment infrastructure (Docker + Caddy)
- Multi-stage Dockerfile: Node builder → Caddy static prod, Node HMR dev
- docker-compose with dev/prod profiles on external caddy network
- Caddyfile with immutable hashed asset caching
- Makefile: prod, dev, down, logs, rebuild targets
- Site URL configurable via SITE_URL env var
2026-02-24 09:36:43 -07:00

38 lines
927 B
Docker

# ── Stage 1: Build ─────────────────────────────────────────────────
FROM node:22-slim AS builder
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
COPY . .
ARG SITE_URL=https://gr-mcp.warehack.ing
ENV ASTRO_TELEMETRY_DISABLED=1
RUN npm run build
# ── Stage 2: Production (Caddy static server) ─────────────────────
FROM caddy:2-alpine AS prod
COPY --from=builder /app/dist /srv
COPY Caddyfile /etc/caddy/Caddyfile
EXPOSE 80
# ── Stage 3: Development (Node with HMR) ──────────────────────────
FROM node:22-slim AS dev
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
ENV ASTRO_TELEMETRY_DISABLED=1
ENV HOST=0.0.0.0
EXPOSE 4321
CMD ["npm", "run", "dev", "--", "--host", "0.0.0.0"]