# Use Python 3.10.12 as base image FROM python:3.10.12-slim # Set environment variables ENV PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 \ PORT=7860 \ DEPLOYMENT_MODE=local \ HF_SPACES_MODE=1 # Create user for HF Spaces compatibility RUN useradd -m -u 1000 user # Set working directory WORKDIR /app # Update package list and install system dependencies from packages.txt RUN apt-get update && apt-get install -y --no-install-recommends \ ffmpeg \ git \ wget \ curl \ unzip \ gnupg2 \ apt-transport-https \ ca-certificates \ lsb-release \ libglib2.0-0 \ libnss3 \ libatk-bridge2.0-0 \ libdrm2 \ libxkbcommon0 \ libxcomposite1 \ libxdamage1 \ libxrandr2 \ libgbm1 \ libxss1 \ libasound2 \ libgtk-3-0 \ libx11-xcb1 \ libxcb-dri3-0 \ libgconf-2-4 \ chromium-driver \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* # Copy requirements and install Python dependencies COPY --chown=user requirements.txt /app/requirements.txt RUN pip install --no-cache-dir --upgrade pip && \ pip install --no-cache-dir -r requirements.txt # Copy source code COPY --chown=user . /app # Ensure user has full read/write permissions on /app directory RUN chown -R user:user /app && \ chmod -R 755 /app && \ mkdir -p /app/cache /app/downloads /app/transcripts && \ chmod -R 777 /app/cache /app/downloads /app/transcripts # Switch to user USER user # Set user environment ENV HOME=/home/user \ PATH=/home/user/.local/bin:$PATH \ PYTHONPATH=/app # Create cache directory RUN mkdir -p /home/user/.cache # Expose port EXPOSE 7860 # Start the application CMD ["python", "app.py"]