FROM node:24-alpine

WORKDIR /app

# pnpm is pre-installed in node:24-alpine; build + run stay static (no postinstall
# scripts are needed — see allowBuilds in pnpm-workspace.yaml).
COPY package.json package-lock.json pnpm-workspace.yaml ./
RUN pnpm install --frozen-lockfile

COPY tsconfig.json codegen.yml eslint.config.js ./
COPY src ./src
RUN pnpm run build && pnpm prune --prod

ENV WIKIJS_MCP_TRANSPORT=http

EXPOSE 3001
# Liveness probe, no auth required:
#   docker inspect --format='{{json .State.Health.Status}}' wikijs-mcp
HEALTHCHECK CMD node -e "fetch('http://127.0.0.1:3001/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"

CMD ["node", "build/index.js"]
