FROM node:24-bookworm

ENV PLAYWRIGHT_BROWSERS_PATH=/ms-playwright

RUN apt-get update \
  && apt-get install -y --no-install-recommends \
  git \
  ca-certificates \
  bubblewrap \
  tmux \
  # Playwright Chromium runtime dependencies / useful fonts
  libnss3 \
  libnspr4 \
  libatk1.0-0 \
  libatk-bridge2.0-0 \
  libcups2 \
  libdrm2 \
  libdbus-1-3 \
  libxkbcommon0 \
  libxcomposite1 \
  libxdamage1 \
  libxfixes3 \
  libxrandr2 \
  libgbm1 \
  libasound2 \
  libpango-1.0-0 \
  libcairo2 \
  libgtk-3-0 \
  libxshmfence1 \
  fonts-liberation \
  fonts-noto-color-emoji \
  fonts-dejavu-core \
  && apt-get clean \
  && rm -rf /var/lib/apt/lists/*

RUN npm install -g \
  @nestjs/cli@11.0.14 \
  @angular/cli@21.0.0 \
  typescript@5.7.3 \
  @openai/codex

# Optional but recommended for deterministic screenshot capability:
# install Playwright browser binaries into a shared path during image build.
# This installs the Playwright CLI package transiently and stores browsers in /ms-playwright.
RUN npx -y playwright@1.59.1 install chromium \
  && chmod -R 755 /ms-playwright

WORKDIR /workspace