FROM python:3.11-slim # Install system dependencies for PsychoPy RUN apt-get update && apt-get install -y \ git \ libdbus-1-3 \ libfontconfig1 \ libgl1-mesa-glx \ libglib2.0-0 \ libgomp1 \ libsm6 \ libxcb-icccm4 \ libxcb-image0 \ libxcb-keysyms1 \ libxcb-randr0 \ libxcb-render-util0 \ libxcb-render0 \ libxcb-shape0 \ libxcb-shape0 \ libxcb-xfixes0 \ libxcb-xinerama0 \ libxcb-xkb1 \ libxext6 \ libxkbcommon-x11-0 \ libxrender1 \ && rm -rf /var/lib/apt/lists/* # Set working directory WORKDIR /app # Copy requirements first for better caching COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # Copy application code COPY . . # Expose Gradio port EXPOSE 7860 # Set environment variables ENV PYTHONUNBUFFERED=1 ENV GRADIO_SERVER_NAME=0.0.0.0 ENV GRADIO_SERVER_PORT=7860 # Run the application CMD ["python", "app.py"]