doyeqkl commited on
Commit
9eb9be4
·
verified ·
1 Parent(s): 9f41167

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +32 -11
Dockerfile CHANGED
@@ -1,51 +1,72 @@
 
1
  FROM python:3.10-slim
2
 
3
  # -------------------------
4
- # Базовые переменные
5
  # -------------------------
 
6
  ENV PYTHONDONTWRITEBYTECODE=1
 
7
  ENV PYTHONUNBUFFERED=1
8
 
9
- # Оптимизация сборки llama.cpp
10
- ENV CMAKE_ARGS="-DLLAMA_BLAS=OFF -DLLAMA_OPENMP=ON"
 
 
 
 
 
 
 
 
 
11
  ENV MAKEFLAGS="-j2"
12
 
13
  WORKDIR /app
14
 
15
  # -------------------------
16
- # Системные зависимости
17
  # -------------------------
 
18
  RUN apt-get update && apt-get install -y \
19
  build-essential \
20
  cmake \
21
  git \
 
22
  && rm -rf /var/lib/apt/lists/*
23
 
24
  # -------------------------
25
- # Python зависимости
26
  # -------------------------
27
  RUN pip install --upgrade pip
28
 
29
  COPY requirements.txt .
 
 
30
  RUN pip install --no-cache-dir -r requirements.txt
31
 
32
  # -------------------------
33
- # llama-cpp-python борка из исходников)
34
  # -------------------------
35
- RUN pip install --no-cache-dir llama-cpp-python
 
36
 
37
  # -------------------------
38
- # Код приложения
39
  # -------------------------
40
  COPY . .
41
 
42
  # -------------------------
43
- # Папка для моделей
44
  # -------------------------
45
- RUN mkdir -p /app/models && chmod 777 /app/models
 
 
 
 
46
 
47
  # -------------------------
48
- # Порт и запуск
49
  # -------------------------
50
  EXPOSE 7860
51
 
 
1
+ # Используем легкий Python 3.10
2
  FROM python:3.10-slim
3
 
4
  # -------------------------
5
+ # Настройки окружения
6
  # -------------------------
7
+ # Не создавать .pyc файлы
8
  ENV PYTHONDONTWRITEBYTECODE=1
9
+ # Вывод логов без буферизации (видим всё сразу)
10
  ENV PYTHONUNBUFFERED=1
11
 
12
+ # -------------------------
13
+ # Настройки компиляции (САМОЕ ВАЖНОЕ)
14
+ # -------------------------
15
+ # 1. FORCE_CMAKE=1: Заставляет pip использовать CMake
16
+ # 2. LLAMA_BLAS=ON: Включаем математическое ускорение
17
+ # 3. LLAMA_BLAS_VENDOR=OpenBLAS: Указываем библиотеку ускорения
18
+ # 4. LLAMA_OPENMP=ON: Включаем многопоточность
19
+ ENV FORCE_CMAKE=1
20
+ ENV CMAKE_ARGS="-DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS -DLLAMA_OPENMP=ON"
21
+
22
+ # Ограничиваем сборку 2 потоками, чтобы сервер HF не завис от нехватки памяти
23
  ENV MAKEFLAGS="-j2"
24
 
25
  WORKDIR /app
26
 
27
  # -------------------------
28
+ # 1. Системные зависимости
29
  # -------------------------
30
+ # Добавляем libopenblas-dev для ускорения
31
  RUN apt-get update && apt-get install -y \
32
  build-essential \
33
  cmake \
34
  git \
35
+ libopenblas-dev \
36
  && rm -rf /var/lib/apt/lists/*
37
 
38
  # -------------------------
39
+ # 2. Python зависимости
40
  # -------------------------
41
  RUN pip install --upgrade pip
42
 
43
  COPY requirements.txt .
44
+
45
+ # Устанавливаем всё, КРОМЕ llama-cpp-python (чтобы не сбить кэш)
46
  RUN pip install --no-cache-dir -r requirements.txt
47
 
48
  # -------------------------
49
+ # 3. Сборка llama-cpp-python
50
  # -------------------------
51
+ # --no-binary: заставляет pip компилировать из исходников, используя наши ENV настройки
52
+ RUN pip install --no-cache-dir --force-reinstall --no-binary llama-cpp-python llama-cpp-python
53
 
54
  # -------------------------
55
+ # 4. Код приложения
56
  # -------------------------
57
  COPY . .
58
 
59
  # -------------------------
60
+ # 5. Права доступа и папки
61
  # -------------------------
62
+ # Создаем папки для моделей и кэша.
63
+ # chmod 777 важно, так как HF запускает контейнер от имени пользователя user 1000, а не root.
64
+ RUN mkdir -p /app/models && \
65
+ mkdir -p /app/cache_db && \
66
+ chmod -R 777 /app
67
 
68
  # -------------------------
69
+ # 6. Запуск
70
  # -------------------------
71
  EXPOSE 7860
72