doyeqkl commited on
Commit
dbf42be
·
verified ·
1 Parent(s): 272e7fa

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +11 -15
Dockerfile CHANGED
@@ -1,8 +1,7 @@
1
- # Используем готовый образ от разработчика библиотеки
2
- # Он уже содержит скомпилированную llama-cpp-python
3
  FROM ghcr.io/abetlen/llama-cpp-python:latest
4
 
5
- # Переключаемся на root, чтобы иметь права устанавливать другие пакеты
6
  USER root
7
 
8
  WORKDIR /app
@@ -10,28 +9,25 @@ WORKDIR /app
10
  # Обновляем pip
11
  RUN pip install --upgrade pip
12
 
13
- # Копируем список библиотек
14
  COPY requirements.txt .
15
 
16
- # ---------------------------------------------------------------------------
17
- # ВАЖНЫЙ ТРЮК:
18
- # Мы удаляем llama-cpp-python из списка requirements.txt на лету.
19
- # Почему? Потому что она УЖЕ установлена в этом образе (строка 1).
20
- # Если мы попытаемся установить её снова через pip, он начнет её пересобирать
21
- # и мы снова потеряем 20 минут. Этот трюк предотвращает это.
22
- # ---------------------------------------------------------------------------
23
  RUN grep -v "llama-cpp-python" requirements.txt > req_no_llama.txt && \
24
  pip install --no-cache-dir -r req_no_llama.txt
25
 
26
- # Копируем весь остальной код
27
  COPY . .
28
 
29
- # Создаем папки для моделей и кэша с полными правами (для Hugging Face)
 
 
 
 
 
30
  RUN mkdir -p /app/models /app/cache_db && \
31
  chmod -R 777 /app
32
 
33
- # Открываем порт
34
  EXPOSE 7860
35
 
36
- # Запускаем
37
  CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]
 
1
+ # Используем готовый образ (там уже всё скомпилировано)
 
2
  FROM ghcr.io/abetlen/llama-cpp-python:latest
3
 
4
+ # Переходим под root для настройки
5
  USER root
6
 
7
  WORKDIR /app
 
9
  # Обновляем pip
10
  RUN pip install --upgrade pip
11
 
12
+ # Копируем зависимости
13
  COPY requirements.txt .
14
 
15
+ # Устанавливаем библиотеки, КРОМЕ llama-cpp-python (она уже есть в образе)
 
 
 
 
 
 
16
  RUN grep -v "llama-cpp-python" requirements.txt > req_no_llama.txt && \
17
  pip install --no-cache-dir -r req_no_llama.txt
18
 
19
+ # Копируем весь твой код
20
  COPY . .
21
 
22
+ # !!! ВАЖНОЕ ИСПРАВЛЕНИЕ !!!
23
+ # Удаляем локальную папку llama_cpp, если она случайно скопировалась.
24
+ # Это заставит Python использовать системную библиотеку.
25
+ RUN rm -rf /app/llama_cpp
26
+
27
+ # Создаем папки для моделей и кэша
28
  RUN mkdir -p /app/models /app/cache_db && \
29
  chmod -R 777 /app
30
 
 
31
  EXPOSE 7860
32
 
 
33
  CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]