AnatoliiG commited on
Commit
9306632
·
1 Parent(s): c5f3f78

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +18 -29
Dockerfile CHANGED
@@ -1,48 +1,37 @@
1
  FROM ubuntu:24.04
2
 
3
- # Отключаем интерактивные диалоги во время установки пакетов
4
  ENV DEBIAN_FRONTEND=noninteractive
5
 
6
- # Устанавливаем PPA deadsnakes и системные зависимости ключая glibc 2.39 и libgomp1)
 
 
 
7
  RUN apt-get update && apt-get install -y --no-install-recommends \
8
- software-properties-common \
9
- ca-certificates \
10
- curl \
11
- git \
12
  libgomp1 \
13
- && add-apt-repository ppa:deadsnakes/ppa \
14
- && apt-get update && apt-get install -y --no-install-recommends \
15
- python3.10 \
16
- python3.10-dev \
17
- python3.10-distutils \
18
- python3.10-venv \
19
  && rm -rf /var/lib/apt/lists/*
20
 
21
- # Устанавливаем pip специально для Python 3.10
22
- RUN curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10
23
-
24
  RUN useradd -m -u 1000 user
25
  USER user
26
- ENV HOME=/home/user \
27
- PATH=/home/user/.local/bin:$PATH \
28
- HF_HOME=/home/user/cache
29
-
30
  WORKDIR /app
31
 
32
- # Обновляем pip для Python 3.10
33
- RUN python3.10 -m pip install --no-cache-dir --upgrade pip
 
 
 
 
 
34
 
35
- # Установка готового wheel-файла от Luigi (теперь он без проблем найдет нужный GLIBC)
36
- RUN python3.10 -m pip install --no-cache-dir \
37
- https://huggingface.co/Luigi/llama-cpp-python-wheels-hf-spaces-free-cpu/resolve/main/llama_cpp_python-0.3.22-cp310-cp310-linux_x86_64.whl
38
 
39
- # Устанавливаем зависимости из вашего requirements.txt
40
  COPY --chown=user requirements.txt .
41
- RUN python3.10 -m pip install --no-cache-dir -r requirements.txt
42
 
43
  COPY --chown=user . .
44
 
45
  EXPOSE 7860
46
-
47
- # Запускаем uvicorn через Python 3.10
48
- CMD ["python3.10", "-m", "uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]
 
1
  FROM ubuntu:24.04
2
 
3
+ # Отключаем интерактивные диалоги при установке
4
  ENV DEBIAN_FRONTEND=noninteractive
5
 
6
+ # Копируем инструмент 'uv' (он заменит pip, сам скачает Python 3.10 и сделает сборку реактивной)
7
+ COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
8
+
9
+ # Устанавливаем базовые системные пакеты (включая нужный gomp)
10
  RUN apt-get update && apt-get install -y --no-install-recommends \
 
 
 
 
11
  libgomp1 \
12
+ ca-certificates \
 
 
 
 
 
13
  && rm -rf /var/lib/apt/lists/*
14
 
 
 
 
15
  RUN useradd -m -u 1000 user
16
  USER user
 
 
 
 
17
  WORKDIR /app
18
 
19
+ # Создаем виртуальное окружение с Python 3.10 внутри Ubuntu 24.04!
20
+ # Это решает проблему со старой версией GLIBC в Debian
21
+ RUN uv venv --python 3.10
22
+
23
+ # Активируем окружение (все вызовы python и pip будут идти через Python 3.10)
24
+ ENV PATH="/app/.venv/bin:$PATH" \
25
+ HF_HOME=/home/user/cache
26
 
27
+ # Мгновенно ставим готовый бинарник llama-cpp-python (теперь GLIBC совпадает!)
28
+ RUN uv pip install --no-cache https://huggingface.co/Luigi/llama-cpp-python-wheels-hf-spaces-free-cpu/resolve/main/llama_cpp_python-0.3.22-cp310-cp310-linux_x86_64.whl
 
29
 
30
+ # Ставим остальные зависимости из вашего requirements.txt
31
  COPY --chown=user requirements.txt .
32
+ RUN uv pip install --no-cache -r requirements.txt
33
 
34
  COPY --chown=user . .
35
 
36
  EXPOSE 7860
37
+ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]