FROM node:18-slim # Install system dependencies for Playwright RUN apt-get update && apt-get install -y \ wget \ gnupg2 \ ca-certificates \ fonts-liberation \ libasound2 \ libatk-bridge2.0-0 \ libatk1.0-0 \ libatspi2.0-0 \ libcups2 \ libdbus-1-3 \ libdrm2 \ libgbm1 \ libgtk-3-0 \ libnspr4 \ libnss3 \ libwayland-client0 \ libxcomposite1 \ libxdamage1 \ libxfixes3 \ libxkbcommon0 \ libxrandr2 \ xdg-utils \ libu2f-udev \ libvulkan1 \ --no-install-recommends \ && rm -rf /var/lib/apt/lists/* # Set working directory WORKDIR /app # Copy package files COPY package*.json ./ # Install Node.js dependencies RUN npm install # Install Playwright browsers RUN npx playwright install chromium RUN npx playwright install-deps chromium # Copy application files COPY . . # Create database directory RUN mkdir -p /db && chmod 777 /db # Set environment variables ENV PORT=3000 ENV CACHE_EXPIRY_HOURS=24 ENV DB_PATH=/db/cache.db # Expose port EXPOSE 3000 # Run the application CMD ["npm", "start"]