FROM python:3.10-slim # Set working directory WORKDIR /app # Install system dependencies RUN apt-get update && apt-get install -y \ git \ git-lfs \ curl \ build-essential \ cmake \ libgl1-mesa-glx \ libglib2.0-0 \ libsm6 \ libxext6 \ libxrender-dev \ libgomp1 \ && rm -rf /var/lib/apt/lists/* # Initialize git lfs RUN git lfs install # Copy requirements first for better caching COPY requirements_fixed.txt requirements.txt # Install Python dependencies with specific versions to avoid conflicts RUN pip install --no-cache-dir --upgrade pip && \ pip install --no-cache-dir -r requirements.txt # Copy application files COPY . . # Create necessary directories RUN mkdir -p data configs models scripts logs # Set environment variables ENV PYTHONPATH=/app ENV TRANSFORMERS_CACHE=/app/.cache/transformers ENV HF_HOME=/app/.cache/huggingface ENV GRADIO_SERVER_NAME="0.0.0.0" ENV GRADIO_SERVER_PORT=7860 # Make scripts executable RUN chmod +x scripts/*.py # Expose port EXPOSE 7860 # Health check HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \ CMD curl -f http://localhost:7860/health || exit 1 # Run the application CMD ["python", "app.py"]