FROM node:22-slim RUN apt-get update && apt-get install -y --no-install-recommends \ chromium \ fonts-freefont-ttf \ fonts-noto-cjk \ tini \ && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY package.json package-lock.json ./ RUN npm ci --omit=dev COPY convert.js server.js md2html.js mermaid.min.js ./ ENV CHROME_PATH=/usr/bin/chromium ENV PORT=3000 EXPOSE 3000 HEALTHCHECK --interval=30s --timeout=5s --retries=3 \ CMD node -e "require('http').get('http://localhost:3000/health', r => process.exit(r.statusCode === 200 ? 0 : 1))" ENTRYPOINT ["/usr/bin/tini", "--"] CMD ["node", "server.js"]