FROM python:3.11-slim WORKDIR /app # Install CPU-only torch first (saves ~1.8GB vs CUDA build) RUN pip install --no-cache-dir torch --index-url https://download.pytorch.org/whl/cpu COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY app.py . # Pre-download commonly used TTS models so first requests are fast. # Individual failures are non-fatal. RUN python -c "\ from transformers import VitsModel, AutoTokenizer; \ models = [ \ 'facebook/mms-tts-yor', 'facebook/mms-tts-swh', 'facebook/mms-tts-hau', \ 'facebook/mms-tts-pcm', 'facebook/mms-tts-aka', 'facebook/mms-tts-lug', \ 'facebook/mms-tts-amh', 'facebook/mms-tts-som', 'facebook/mms-tts-sna', \ 'khof312/mms-tts-lin', 'facebook/mms-tts-ara', \ ]; \ ok = 0; \ for m in models: \ try: \ VitsModel.from_pretrained(m); AutoTokenizer.from_pretrained(m); \ print(f' OK {m}'); ok += 1 \ except Exception as e: \ print(f' SKIP {m}: {e}') \ ; \ print(f'{ok}/{len(models)} models cached') \ " EXPOSE 7860 CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]