| FROM node:22-slim | |
| # Install Playwright system dependencies | |
| RUN apt-get update && apt-get install -y \ | |
| libnss3 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 \ | |
| libxkbcommon0 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 \ | |
| libgbm1 libpango-1.0-0 libcairo2 libasound2 libatspi2.0-0 \ | |
| fonts-liberation fonts-noto-color-emoji \ | |
| && rm -rf /var/lib/apt/lists/* | |
| WORKDIR /app | |
| ENV PNPM_HOME=/pnpm | |
| ENV PATH="$PNPM_HOME:$PATH" | |
| RUN corepack enable | |
| COPY package.json pnpm-lock.yaml tsconfig.json ./ | |
| RUN pnpm install --frozen-lockfile | |
| COPY --chown=node:node src ./src | |
| RUN pnpm build && pnpm prune --prod | |
| # Install Playwright Chromium as node user (matches runtime user) | |
| USER node | |
| RUN pnpm exec playwright install chromium | |
| ENV PORT=7860 | |
| EXPOSE 7860 | |
| CMD ["node", "dist/server.js"] | |