File size: 1,383 Bytes
4ac3340 5039004 9306632 37f2508 1f56e9a c5f3f78 1f56e9a 9a6571c 1f56e9a afe2a94 9306632 9a6571c 09a93e0 1f56e9a 09a93e0 37f2508 5039004 09a93e0 5039004 97d211e 8825fec 6087fee 9306632 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | FROM python:3.12-slim
# Отключаем интерактивные диалоги при установке
ENV DEBIAN_FRONTEND=noninteractive \
HF_HOME=/home/user/cache \
PYTHONUNBUFFERED=1 \
CMAKE_BUILD_PARALLEL_LEVEL=1 \
LLAMA_CPP_PYTHON_CUDA_SUPPORT=0
# Устанавливаем минимальные системные зависимости для компиляции
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
cmake \
libgomp1 \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
# Копируем requirements и устанавливаем зависимости ДО переключения пользователя
COPY requirements.txt .
RUN pip install --no-cache-dir --upgrade pip setuptools wheel && \
pip install --no-cache-dir -r requirements.txt
# Очищаем кэш apt и другие временные файлы
RUN apt-get remove -y build-essential cmake && \
apt-get autoremove -y && \
apt-get clean
# Создаем непривилегированного пользователя для HF Spaces
RUN useradd -m -u 1000 user
# Переключаемся на пользователя и копируем приложение
USER user
WORKDIR /app
COPY --chown=user . .
EXPOSE 7860
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]
|