# Use an official Node.js runtime as a base image FROM node:18-bullseye # Set working directory inside the container WORKDIR /app # Install system dependencies required for Playwright RUN apt-get update && apt-get install -y \ wget \ curl \ unzip \ fonts-liberation \ libasound2 \ libatk-bridge2.0-0 \ libatk1.0-0 \ libcups2 \ libdbus-1-3 \ libgbm-dev \ libnspr4 \ libnss3 \ libxcomposite1 \ libxdamage1 \ libxfixes3 \ libxrandr2 \ xdg-utils \ libu2f-udev \ libvulkan1 \ xvfb \ --no-install-recommends && \ rm -rf /var/lib/apt/lists/* # Set environment variable for Playwright browsers path ENV PLAYWRIGHT_BROWSERS_PATH=/ms-playwright # Copy package.json and package-lock.json first for caching COPY package.json ./ # Install project dependencies RUN npm install # Install Playwright browsers RUN npx playwright install --with-deps chromium # Copy the application source code COPY . . # Expose the port EXPOSE 7860 # Start the application (REMOVE playwright install from CMD) CMD ["node", "server.js"]