33 lines
1.1 KiB
Docker
33 lines
1.1 KiB
Docker
# syntax=docker/dockerfile:1.7
|
|
#
|
|
# Build container for @suaveplan/docs.
|
|
#
|
|
# This image holds the Docusaurus toolchain (Node 22 LTS + npm + docusaurus
|
|
# deps). It is run via docker-compose to consume a snapshot of the repo's
|
|
# markdown content (mounted as `/work/docs`) and produce the static build
|
|
# output (mounted as `/work/build` -> host `apps/docs/build/`).
|
|
#
|
|
# The Bun bytecode-compiled runtime server lives outside this image.
|
|
FROM node:22-bookworm-slim
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
ENV NODE_ENV=production
|
|
ENV NPM_CONFIG_FUND=false
|
|
ENV NPM_CONFIG_AUDIT=false
|
|
|
|
WORKDIR /work
|
|
|
|
# Toolchain deps first so the layer caches when only content changes.
|
|
COPY package.json ./
|
|
|
|
RUN npm install --no-save --omit=optional
|
|
|
|
# Site configuration — these change rarely, content changes often.
|
|
COPY docusaurus.config.ts sidebars.ts ./
|
|
COPY src ./src
|
|
COPY tsconfig.json ./
|
|
|
|
# Output to a subdirectory of the mounted volume so Docusaurus can rmdir
|
|
# its own output between runs without touching the bind mount itself.
|
|
CMD ["npx", "docusaurus", "build", "--out-dir", "/work/build/site"]
|