Dockerfile 691 B

123456789101112131415161718192021
  1. FROM node:24-alpine
  2. WORKDIR /app
  3. # pnpm is pre-installed in node:24-alpine; build + run stay static (no postinstall
  4. # scripts are needed — see allowBuilds in pnpm-workspace.yaml).
  5. COPY package.json package-lock.json pnpm-workspace.yaml ./
  6. RUN pnpm install --frozen-lockfile
  7. COPY tsconfig.json codegen.yml eslint.config.js ./
  8. COPY src ./src
  9. RUN pnpm run build && pnpm prune --prod
  10. ENV WIKIJS_MCP_TRANSPORT=http
  11. EXPOSE 3001
  12. # Liveness probe, no auth required:
  13. # docker inspect --format='{{json .State.Health.Status}}' wikijs-mcp
  14. HEALTHCHECK CMD node -e "fetch('http://127.0.0.1:3001/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"
  15. CMD ["node", "build/index.js"]