# Lighthouse Scanner Service - Dockerfile # Node.js service that runs Lighthouse CLI and provides HTTP API FROM node:20-slim # Install Chrome dependencies RUN apt-get update && apt-get install -y --no-install-recommends \ chromium \ fonts-liberation \ libappindicator3-1 \ libasound2 \ libatk-bridge2.0-0 \ libatk1.0-0 \ libcups2 \ libdbus-1-3 \ libdrm2 \ libgbm1 \ libgtk-3-0 \ libnspr4 \ libnss3 \ libxcomposite1 \ libxdamage1 \ libxfixes3 \ libxkbcommon0 \ libxrandr2 \ xdg-utils \ curl \ && rm -rf /var/lib/apt/lists/* # Set Chrome path for Lighthouse ENV CHROME_PATH=/usr/bin/chromium WORKDIR /app # Copy package files COPY package*.json ./ # Install dependencies RUN npm ci --only=production # Copy application code COPY . . # Create reports directory RUN mkdir -p reports # Create non-root user RUN useradd -m -u 1000 lighthouse && \ chown -R lighthouse:lighthouse /app USER lighthouse EXPOSE 3001 CMD ["node", "server.js"]