FROM pytorch/pytorch:2.7.1-cuda12.8-cudnn9-runtime@sha256:c16f4c749e2d9e96878875cdf6cc45cddda1d1a36fddd371dd6f2360f1b6e2a2

RUN apt-get update \
 && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends build-essential curl ffmpeg libsndfile1 \
 && rm -rf /var/lib/apt/lists/*

RUN python -m pip install --no-cache-dir \
    "audio-separator[gpu]==0.47.0" \
    "onnxruntime-gpu==1.22.0" \
    "fastapi==0.116.1" \
    "python-multipart==0.0.20" \
    "uvicorn[standard]==0.35.0"

WORKDIR /app
COPY app.py index.html ./

ENV MODEL_FILENAME=model_bs_roformer_ep_317_sdr_12.9755.ckpt \
    MODEL_DIR=/models \
    JOB_DIR=/data/jobs

EXPOSE 8080
CMD ["sh", "-c", "audio-separator --model_filename \"$MODEL_FILENAME\" --model_file_dir \"$MODEL_DIR\" --download_model_only && exec uvicorn app:app --host 0.0.0.0 --port 8080 --workers 1"]
