FROM python:3.13-slim # Install display and VNC deps RUN apt-get update -qq && apt-get install -y -qq --no-install-recommends \ xvfb x11vnc websockify novnc \ libnss3 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 \ libxkbcommon0 libxcomposite1 libxdamage1 libxrandr2 libgbm1 \ libpango-1.0-0 libcairo2 libasound2 libxshmfence1 libgtk-3-0 \ fonts-liberation && \ rm -rf /var/lib/apt/lists/* # Install Python deps COPY pyproject.toml uv.lock /app/ WORKDIR /app RUN pip install uv && uv sync --frozen # Install Playwright Chromium RUN uv run playwright install chromium # Copy source COPY . /app/ # Entrypoint script COPY entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh EXPOSE 6080 8080 ENTRYPOINT ["/entrypoint.sh"]