AnatoliiG commited on
Commit
6087fee
·
1 Parent(s): ed5c469
Files changed (3) hide show
  1. Dockerfile +39 -0
  2. app.py +0 -0
  3. requirements.txt +6 -0
Dockerfile ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 1. Используем Python 3.10 (под него точно есть готовые колеса/wheels)
2
+ FROM python:3.10-slim
3
+
4
+ # 2. Настраиваем окружение, чтобы логи выводились сразу
5
+ ENV PYTHONUNBUFFERED=1 \
6
+ PYTHONDONTWRITEBYTECODE=1 \
7
+ # Настраиваем кеш HF в доступную для записи папку
8
+ HF_HOME=/home/user/cache \
9
+ HOME=/home/user \
10
+ PATH=/home/user/.local/bin:$PATH
11
+
12
+ WORKDIR /app
13
+
14
+ # 3. Устанавливаем минимальные системные утилиты (на всякий случай, быстро)
15
+ RUN apt-get update && apt-get install -y --no-install-recommends \
16
+ curl \
17
+ && rm -rf /var/lib/apt/lists/*
18
+
19
+ # 4. Создаем пользователя (требование HF)
20
+ RUN useradd -m -u 1000 user
21
+ USER user
22
+ RUN mkdir -p $HF_HOME
23
+
24
+ # 5. Сначала копируем и ставим легкие зависимости (кешируется)
25
+ COPY --chown=user requirements.txt requirements.txt
26
+ RUN pip install --no-cache-dir --upgrade pip && \
27
+ pip install --no-cache-dir -r requirements.txt
28
+
29
+ # 6. КЛЮЧЕВОЙ МОМЕНТ: Ставим llama-cpp-python из готового колеса
30
+ # Мы явно указываем индекс для CPU. Это занимает секунды вместо минут.
31
+ RUN pip install --no-cache-dir llama-cpp-python \
32
+ --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cpu
33
+
34
+ # 7. Копируем код приложения (в последнюю очередь, чтобы правки кода не триггерили переустановку либ)
35
+ COPY --chown=user app.py app.py
36
+
37
+ # 8. Запускаем
38
+ EXPOSE 7860
39
+ CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]
app.py ADDED
File without changes
requirements.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ fastapi
2
+ uvicorn
3
+ gradio
4
+ huggingface_hub
5
+ sse-starlette
6
+ pydantic