FROM node:20-bookworm-slim AS base ENV NODE_ENV=production ENV NEXT_TELEMETRY_DISABLED=1 FROM base AS deps WORKDIR /app COPY package.json package-lock.json ./ RUN npm ci --include=dev FROM base AS builder WORKDIR /app COPY --from=deps /app/node_modules ./node_modules COPY . . RUN npm run build FROM base AS runner WORKDIR /app ENV PORT=3000 ENV PUPPETEER_SKIP_DOWNLOAD=1 ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium RUN apt-get update && apt-get install -y --no-install-recommends \ chromium \ fonts-liberation \ libasound2 \ libatk1.0-0 \ libcups2 \ libdrm2 \ libxkbcommon0 \ libxcomposite1 \ libxdamage1 \ libxrandr2 \ libgbm1 \ libpango-1.0-0 \ libpangocairo-1.0-0 \ libgtk-3-0 \ libnss3 \ libx11-xcb1 \ libxss1 \ libxtst6 \ libu2f-udev \ && rm -rf /var/lib/apt/lists/* COPY --from=builder /app/public ./public COPY --from=builder /app/.next/standalone ./ COPY --from=builder /app/.next/static ./.next/static EXPOSE 3000 CMD ["node", "server.js"]