# syntax=docker/dockerfile:1 FROM mcr.microsoft.com/playwright/python:v1.49.0-noble # Set environment variables ENV PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 \ PORT=5000 \ DATA_DIR=/app/data # Working directory inside the container WORKDIR /app # Install Python requirements COPY requirements.txt . RUN pip install --no-cache-dir --upgrade pip && \ pip install --no-cache-dir -r requirements.txt && \ playwright install chromium # Copy application source code COPY thread_ripper/ ./thread_ripper/ # Create persistent data directory RUN mkdir -p /app/data/threads # Expose server port EXPOSE 5000 # Volume for persisting saved threads VOLUME ["/app/data"] # Run Thread Ripper server with uvicorn CMD ["uvicorn", "thread_ripper.server:app", "--host", "0.0.0.0", "--port", "5000"]