| FROM python:3.9-slim |
|
|
| |
| WORKDIR /app |
|
|
| |
| RUN apt-get update && apt-get install -y \ |
| ffmpeg \ |
| git \ |
| wget \ |
| curl \ |
| build-essential \ |
| libsndfile1 \ |
| libasound2-dev \ |
| portaudio19-dev \ |
| libportaudio2 \ |
| libportaudiocpp0 \ |
| libsndfile1-dev \ |
| libflac-dev \ |
| libvorbis-dev \ |
| libogg-dev \ |
| libmp3lame-dev \ |
| libmad0-dev \ |
| libtwolame-dev \ |
| libavcodec-dev \ |
| libavformat-dev \ |
| libavutil-dev \ |
| libswresample-dev \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
| |
| COPY requirements.txt . |
|
|
| |
| RUN pip install --no-cache-dir --upgrade pip setuptools wheel && \ |
| pip install --no-cache-dir -r requirements.txt |
|
|
| |
| RUN python -c "import librosa; print('β librosa OK')" && \ |
| python -c "import resampy; print('β resampy OK')" && \ |
| python -c "import transformers; print('β transformers OK')" && \ |
| python -c "import torch; print('β torch OK')" && \ |
| python -c "import pyannote; print('β pyannote OK')" && \ |
| python -c "import whisper; print('β whisper OK')" && \ |
| python -c "import fastapi; print('β fastapi OK')" && \ |
| echo "All critical imports successful!" |
|
|
| |
| COPY . . |
|
|
| |
| RUN mkdir -p templates static uploads outputs model_cache temp_files demo_results demo_audio results \ |
| /tmp/matplotlib /tmp/fontconfig \ |
| && chmod -R 777 templates static \ |
| && chmod -R 777 uploads outputs model_cache temp_files demo_results demo_audio results \ |
| && chmod -R 777 /tmp/matplotlib /tmp/fontconfig |
|
|
| |
| ENV PYTHONPATH=/app \ |
| GRADIO_ANALYTICS_ENABLED=False \ |
| HF_MODELS_CACHE=/app/model_cache \ |
| OUTPUT_DIR=./outputs \ |
| TEMP_DIR=./temp_files \ |
| WHISPER_MODEL_SIZE=small \ |
| TARGET_LANGUAGE=en \ |
| MAX_WORKERS=1 \ |
| USE_GPU=false \ |
| HF_HOME=/app/model_cache \ |
| TRANSFORMERS_CACHE=/app/model_cache \ |
| TORCH_HOME=/app/model_cache \ |
| XDG_CACHE_HOME=/app/model_cache \ |
| PYANNOTE_CACHE=/app/model_cache \ |
| MPLCONFIGDIR=/tmp/matplotlib \ |
| HUGGINGFACE_HUB_CACHE=/app/model_cache \ |
| HF_HUB_CACHE=/app/model_cache \ |
| FONTCONFIG_PATH=/tmp/fontconfig \ |
| CTRANSLATE2_FORCE_CPU_ISA=generic \ |
| TF_CPP_MIN_LOG_LEVEL=2 \ |
| TOKENIZERS_PARALLELISM=false \ |
| OMP_NUM_THREADS=1 \ |
| MKL_NUM_THREADS=1 \ |
| NUMBA_NUM_THREADS=1 \ |
| TF_ENABLE_ONEDNN_OPTS=0 \ |
| MALLOC_ARENA_MAX=2 \ |
| PYTHONUNBUFFERED=1 |
|
|
| |
| EXPOSE 7860 |
|
|
| |
| HEALTHCHECK --interval=30s --timeout=30s --start-period=60s --retries=3 \ |
| CMD curl -f http://localhost:7860/health || exit 1 |
| |
| |
| CMD ["python", "startup.py"] |