Files
Audio-Classifier/backend/Dockerfile
2025-11-27 17:43:52 +01:00

45 lines
967 B
Docker

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