FROM python:3.10-slim # Install system dependencies for Playwright RUN apt-get update && apt-get install -y \ curl \ net-tools \ wget \ unzip \ libglib2.0-0 \ libnss3 \ libatk1.0-0 \ libatk-bridge2.0-0 \ libxkbcommon0 \ libxcomposite1 \ libxdamage1 \ libxrandr2 \ libgbm1 \ libasound2 \ libcups2 \ libxfixes3 \ libpango-1.0-0 \ libcairo2 \ && rm -rf /var/lib/apt/lists/* # Set working directory WORKDIR /app # Create cache directory RUN mkdir -p /app/cache/pip && \ chmod -R 777 /app/cache # Set pip cache directory ENV XDG_CACHE_HOME=/app/cache/pip ENV PIP_NO_CACHE_DIR=1 # Copy requirements COPY requirements.txt . # Install dependencies RUN pip install --upgrade pip && \ pip install -r requirements.txt && \ pip install tokenizers==0.19.1 && \ playwright install # Verify transformers RUN python -c "import transformers; from transformers import pipeline; print('Transformers pipeline imported successfully, version:', transformers.__version__)" && \ python -c "import tokenizers; print('Tokenizers imported successfully, version:', tokenizers.__version__)" # Copy application COPY . . # Set environment variables ENV PYTHONUNBUFFERED=1 ENV STREAMLIT_OPT_OUT_OF_USAGE_STATISTICS=true ENV HF_HOME=/app/cache # Expose Streamlit port EXPOSE 8501 # Run Streamlit CMD ["streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0", "--server.fileWatcherType=none", "--server.headless=true"]