Update Dockerfile
Browse files- Dockerfile +19 -18
Dockerfile
CHANGED
|
@@ -1,31 +1,32 @@
|
|
| 1 |
FROM python:3.10-slim
|
| 2 |
|
| 3 |
-
# 1.
|
| 4 |
RUN apt-get update && apt-get install -y \
|
| 5 |
-
build-essential \
|
| 6 |
-
gcc \
|
| 7 |
-
g++ \
|
| 8 |
libopenblas-dev \
|
|
|
|
| 9 |
&& rm -rf /var/lib/apt/lists/*
|
| 10 |
|
| 11 |
WORKDIR /app
|
| 12 |
|
| 13 |
-
# 2.
|
| 14 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
|
| 16 |
-
# 3.
|
| 17 |
-
RUN pip install llama-cpp-python==0.2.90 \
|
| 18 |
-
--extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cpu
|
| 19 |
-
|
| 20 |
-
# 4. Создаем пользователя и копируем код
|
| 21 |
RUN useradd -m -u 1000 user
|
| 22 |
-
COPY --chown=user app.py .
|
| 23 |
-
|
| 24 |
-
# Переключаемся на пользователя
|
| 25 |
USER user
|
| 26 |
-
ENV
|
|
|
|
| 27 |
|
| 28 |
-
#
|
| 29 |
-
|
| 30 |
|
| 31 |
-
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
FROM python:3.10-slim
|
| 2 |
|
| 3 |
+
# 1. Устанавливаем только необходимые системные либы
|
| 4 |
RUN apt-get update && apt-get install -y \
|
|
|
|
|
|
|
|
|
|
| 5 |
libopenblas-dev \
|
| 6 |
+
curl \
|
| 7 |
&& rm -rf /var/lib/apt/lists/*
|
| 8 |
|
| 9 |
WORKDIR /app
|
| 10 |
|
| 11 |
+
# 2. Устанавливаем зависимости
|
| 12 |
+
# Используем стабильную версию и официальный индекс для CPU
|
| 13 |
+
RUN pip install --no-cache-dir \
|
| 14 |
+
fastapi \
|
| 15 |
+
uvicorn \
|
| 16 |
+
huggingface_hub \
|
| 17 |
+
pydantic \
|
| 18 |
+
llama-cpp-python==0.2.90
|
| 19 |
|
| 20 |
+
# 3. Настройка пользователя (требование Hugging Face)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 21 |
RUN useradd -m -u 1000 user
|
|
|
|
|
|
|
|
|
|
| 22 |
USER user
|
| 23 |
+
ENV HOME=/home/user \
|
| 24 |
+
PATH=/home/user/.local/bin:$PATH
|
| 25 |
|
| 26 |
+
# 4. Копируем твой app.py
|
| 27 |
+
COPY --chown=user app.py .
|
| 28 |
|
| 29 |
+
# 5. Скрипт запуска: сначала качаем модель, потом запускаем сервер
|
| 30 |
+
# Мы скачиваем версию Q4_K_M (золотая середина веса и качества)
|
| 31 |
+
CMD python -c "from huggingface_hub import hf_hub_download; hf_hub_download(repo_id='bartowski/Llama-3.2-3B-Instruct-GGUF', filename='Llama-3.2-3B-Instruct-Q4_K_M.gguf', local_dir='./')" && \
|
| 32 |
+
uvicorn app:app --host 0.0.0.0 --port 7860
|