FROM mcr.microsoft.com/playwright:v1.58.2-noble USER root RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ fonts-noto-cjk novnc openbox websockify x11vnc xvfb \ && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY app/package.json app/package-lock.json ./ RUN npm ci --omit=dev COPY --chown=pwuser:pwuser app/ ./ COPY --chown=pwuser:pwuser entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh \ && chmod -R a+rX /app \ && mkdir -p /data \ && chown -R pwuser:pwuser /data /app USER pwuser ENV DISPLAY=:99 \ HOME=/home/pwuser \ PORT=8091 \ DATA_DIR=/data EXPOSE 8091 6080 ENTRYPOINT ["/entrypoint.sh"]