FROM python:3.9-slim ENV PYTHONUNBUFFERED=1 ENV PYTHONDONTWRITEBYTECODE=1 ENV PIP_NO_CACHE_DIR=1 ENV PIP_DISABLE_PIP_VERSION_CHECK=1 ENV HF_HOME=/tmp/huggingface_cache ENV TRANSFORMERS_CACHE=/tmp/huggingface_cache/transformers ENV HF_DATASETS_CACHE=/tmp/huggingface_cache/datasets ENV TORCH_HOME=/tmp/torch_cache ENV TOKENIZERS_PARALLELISM=false ENV OMP_NUM_THREADS=1 ENV MKL_NUM_THREADS=1 ENV OPENBLAS_NUM_THREADS=1 # ---------- system deps ---------- RUN apt-get update && apt-get install -y \ ffmpeg \ libavcodec-extra \ espeak-ng \ alsa-utils \ libasound2-dev \ libsndfile1 \ cmake \ build-essential \ pkg-config \ gcc \ g++ \ curl \ wget \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # ---------- python deps ---------- RUN pip install --no-cache-dir --upgrade pip setuptools wheel RUN pip install --no-cache-dir sentencepiece RUN pip install --no-cache-dir \ torch==2.0.1 \ torchaudio==2.0.2 \ --index-url https://download.pytorch.org/whl/cpu WORKDIR /code COPY requirements.txt /code/requirements.txt RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt && \ pip cache purge && \ rm -rf ~/.cache/pip /tmp/* /var/tmp/* # ---------- caches ---------- RUN mkdir -p $HF_HOME $TORCH_HOME && \ chmod -R 777 $HF_HOME $TORCH_HOME # ---------- app ---------- COPY . /code/ RUN useradd --create-home --shell /bin/bash app && \ chown -R app:app /code $HF_HOME $TORCH_HOME USER app HEALTHCHECK --interval=30s --timeout=30s --start-period=60s --retries=3 \ CMD curl -f http://localhost:7860/health || exit 1 EXPOSE 7860 CMD ["python", "-u", "app.py"]