# Pre-requisite: run ./scripts/docker-prep.sh to pack @bytelyst/* tarballs # ── Stage 1: Build ──────────────────────────────────── FROM node:22-slim AS builder WORKDIR /app/web RUN npm config set strict-ssl false COPY web/package.json ./package.json COPY web/.docker-deps/ ./.docker-deps/ RUN npm install --legacy-peer-deps COPY web/src/ ./src/ COPY web/tsconfig.json web/next.config.ts web/postcss.config.mjs ./ COPY web/public/ ./public/ COPY shared/ ../shared/ ENV NEXT_TELEMETRY_DISABLED=1 ENV NODE_TLS_REJECT_UNAUTHORIZED=0 RUN npm run build # ── Stage 2: Runtime ────────────────────────────────── FROM node:22-slim WORKDIR /app ENV NODE_ENV=production ENV NEXT_TELEMETRY_DISABLED=1 COPY --from=builder /app/web/.next/standalone ./ COPY --from=builder /app/web/.next/static ./.next/static COPY --from=builder /app/web/public ./public EXPOSE 3000 CMD ["node", "server.js"]