FROM python:3.11-slim # Install system dependencies RUN apt-get update && apt-get install -y \ ffmpeg \ libsndfile1 \ libsndfile1-dev \ gcc \ g++ \ gfortran \ libopenblas-dev \ liblapack-dev \ pkg-config \ curl \ && rm -rf /var/lib/apt/lists/* # Set working directory WORKDIR /app # Upgrade pip, setuptools, wheel RUN pip install --no-cache-dir --upgrade pip setuptools wheel # Copy requirements COPY requirements.txt . # Install Python dependencies in stages for better caching RUN pip install --no-cache-dir numpy==1.24.3 RUN pip install --no-cache-dir scipy==1.11.4 RUN pip install --no-cache-dir -r requirements.txt # Copy application code COPY src/ ./src/ COPY alembic.ini . COPY models/ ./models/ # Create models directory if not exists RUN mkdir -p /app/models # Expose port EXPOSE 8000 # Run migrations and start server CMD alembic upgrade head && \ uvicorn src.api.main:app --host 0.0.0.0 --port 8000