Spaces:
Sleeping
Sleeping
| FROM python:3.11-slim | |
| WORKDIR /app | |
| # Install system dependencies (libgomp1 is needed for CTranslate2 multi-threading) | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| libgomp1 \ | |
| patchelf \ | |
| && rm -rf /var/lib/apt/lists/* | |
| COPY backend/requirements.txt backend/requirements-convert.txt ./ | |
| RUN pip install --no-cache-dir -r requirements.txt \ | |
| && pip install --no-cache-dir -r requirements-convert.txt --extra-index-url https://download.pytorch.org/whl/cpu | |
| # Pinned to v0.3.34, which ships a py3-none-manylinux2014_x86_64 wheel on the | |
| # CPU wheel index — no cp311-specific build required, no compiler, no CMake. | |
| # --only-binary=:all: makes pip HARD-FAIL instead of silently falling back | |
| # to a from-source build if a matching wheel isn't found (fail fast > timeout). | |
| # Confirmed present at: https://abetlen.github.io/llama-cpp-python/whl/cpu/llama-cpp-python/ | |
| RUN pip install --no-cache-dir --only-binary=:all: \ | |
| llama-cpp-python==0.3.34 \ | |
| --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cpu | |
| RUN SO_FILES=$(find /usr/local/lib/python3.11/site-packages -name '*.so*' -path '*ctranslate2*' 2>/dev/null) \ | |
| && echo "Found CTranslate2 .so files: $SO_FILES" \ | |
| && for f in $SO_FILES; do patchelf --clear-execstack "$f" && echo "Patched: $f"; done | |
| COPY . . | |
| COPY entrypoint.sh . | |
| RUN chmod +x entrypoint.sh | |
| RUN mkdir -p /data/models \ | |
| && useradd -m -u 1000 user \ | |
| && chown -R user:user /app /data | |
| ENV OMP_NUM_THREADS=8 | |
| USER user | |
| EXPOSE 7860 | |
| CMD ["./entrypoint.sh"] |