27 lines · 1.2 KB · Dockerfile
RawDownload
# The Desk: a virtual Linux desktop that e2e scenarios are FILMED on — one# Xvfb display showing a real terminal window (the chat) and a real headed# Chromium (the browser hop), captured by a single ffmpeg x11grab into one# session.mp4. No splicing: the film is the screen.## The repo is bind-mounted at /repo at runtime; node_modules and caches live# in named volumes (host artifacts are macOS-native and can't be reused).FROM node:22-bookworm RUN apt-get update && apt-get install -y --no-install-recommends \    xvfb openbox xterm ffmpeg xdotool x11-utils x11-xserver-utils \    fonts-dejavu-core fonts-noto-color-emoji \    curl unzip ca-certificates git \  && rm -rf /var/lib/apt/lists/* # Bun — the repo's package manager and script runner.RUN curl -fsSL https://bun.sh/install | bash -s "bun-v1.3.13" \  && ln -s /root/.bun/bin/bun /usr/local/bin/bun \  && ln -s /root/.bun/bin/bun /usr/local/bin/bunx # Chromium + system deps baked into the image, pinned to the repo's# playwright version so the runtime install check is a no-op.ENV PLAYWRIGHT_BROWSERS_PATH=/ms-playwrightRUN npx -y playwright@1.60.0 install --with-deps chromium && rm -rf /root/.npm WORKDIR /repoENTRYPOINT ["bash", "e2e/desk/entry.sh"]