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"]