FROM node:22-bookworm-slim AS build WORKDIR /app COPY package*.json ./ RUN npm ci COPY vite.site.config.ts ./ COPY .prettierrc.json ./ COPY scripts/generate-comparisons.mjs ./scripts/ COPY scripts/export-docs.mjs ./scripts/ COPY scripts/configure-site-experience.mjs ./scripts/ COPY scripts/publish-docs.mjs ./scripts/ COPY scripts/prepare-walkthroughs.mjs scripts/walkthrough-recording.js scripts/walkthrough-recording.css ./scripts/ COPY extension/session-review.js extension/session-review.css ./extension/ COPY extension/session ./extension/session COPY public/learn ./public/learn COPY docs ./docs COPY plugins ./plugins COPY site ./site COPY site-docs ./site-docs RUN npm run build:site FROM nginxinc/nginx-unprivileged:1.28-alpine COPY ops/site.nginx.conf /etc/nginx/conf.d/default.conf COPY --from=build /app/dist/site /usr/share/nginx/html COPY LICENSE NOTICE /usr/share/licenses/feedbacks/ EXPOSE 8080 HEALTHCHECK --interval=30s --timeout=5s CMD wget -q -O /dev/null http://127.0.0.1:8080/healthz || exit 1