ARG BASE_IMAGE
FROM ${BASE_IMAGE}

USER root
ENV DEBIAN_FRONTEND=noninteractive

# Playwright's own `install-deps` cannot run on sid: it asks for the virtual
# `libasound2`, which apt refuses because two packages provide it. This is its
# dependency set with that name resolved to the real package.
RUN apt-get update \
 && apt-get install -y --no-install-recommends \
      fonts-freefont-ttf fonts-ipafont-gothic fonts-liberation fonts-noto-color-emoji \
      fonts-tlwg-loma-otf fonts-unifont fonts-wqy-zenhei xfonts-scalable \
      gstreamer1.0-libav gstreamer1.0-plugins-bad gstreamer1.0-plugins-base gstreamer1.0-plugins-good \
      libasound2t64 libatk-bridge2.0-0t64 libatk1.0-0t64 libatspi2.0-0t64 libavif16 \
      libcairo-gobject2 libcairo2 libcups2t64 libdbus-1-3 libdbus-glib-1-2 libdrm2 \
      libegl1 libenchant-2-2 libepoxy0 libevdev2 libevent-2.1-7t64 libfontconfig1 \
      libfreetype6 libgbm1 libgdk-pixbuf-2.0-0 libgles2 libglib2.0-0t64 libglx0 \
      libgstreamer-gl1.0-0 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 \
      libgtk-3-0t64 libgtk-4-1 libgudev-1.0-0 libharfbuzz-icu0 libharfbuzz0b libhyphen0 \
      libjpeg62-turbo liblcms2-2 libmanette-0.2-0 libnotify4 libnspr4 libnss3 \
      libopengl0 libopenjp2-7 libopus0 libpango-1.0-0 libpangocairo-1.0-0 libpng16-16t64 \
      libproxy1v5 libsecret-1-0 libsoup-3.0-0 libwayland-client0 libwayland-egl1 \
      libwayland-server0 libwebp7 libwebpdemux2 libwoff1 libx11-6 libx11-xcb1 \
      libxcb-shm0 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 \
      libxi6 libxkbcommon0 libxrandr2 libxrender1 libxslt1.1 libxtst6 xvfb \
 && rm -rf /var/lib/apt/lists/*

ENV PLAYWRIGHT_BROWSERS_PATH=/ms-playwright \
    PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1

USER agent
WORKDIR /sandbox/workspace
ENTRYPOINT ["/usr/bin/tini", "--"]
CMD ["/usr/local/bin/sandbox-e2e-pair"]
