# 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"]
