# Dockerfile for Next.js 15 + Puppeteer/Chromium + Prisma + Tailwind + OpenAI FROM node:20-slim # Install system dependencies for Chromium RUN apt-get update && apt-get install -y \ wget \ ca-certificates \ fonts-liberation \ libappindicator3-1 \ libasound2 \ libatk-bridge2.0-0 \ libatk1.0-0 \ libcups2 \ libdbus-1-3 \ libdrm2 \ libgbm1 \ libnspr4 \ libnss3 \ libx11-xcb1 \ libxcomposite1 \ libxdamage1 \ libxrandr2 \ xdg-utils \ --no-install-recommends && \ rm -rf /var/lib/apt/lists/* # Install Chromium (Debian 12+ uses 'chromium' instead of 'chromium-browser') RUN apt-get update && apt-get install -y \ chromium \ --no-install-recommends && \ rm -rf /var/lib/apt/lists/* # Set working directory WORKDIR /app # Copy package files and install dependencies COPY package.json package-lock.json* pnpm-lock.yaml* yarn.lock* .npmrc* ./ RUN npm install # Copy the rest of the app COPY . . # Expose port EXPOSE 3000 # Set environment variables for Puppeteer ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium # Start the app CMD ["npm", "run", "dev"]