| # Используем готовый образ (там уже всё скомпилировано) | |
| FROM ghcr.io/abetlen/llama-cpp-python:latest | |
| # Переходим под root для настройки | |
| USER root | |
| WORKDIR /app | |
| # Обновляем pip | |
| RUN pip install --upgrade pip | |
| # Копируем зависимости | |
| COPY requirements.txt . | |
| # Устанавливаем библиотеки, КРОМЕ llama-cpp-python (она уже есть в образе) | |
| RUN grep -v "llama-cpp-python" requirements.txt > req_no_llama.txt && \ | |
| pip install --no-cache-dir -r req_no_llama.txt | |
| # Копируем весь твой код | |
| COPY . . | |
| # !!! ВАЖНОЕ ИСПРАВЛЕНИЕ !!! | |
| # Удаляем локальную папку llama_cpp, если она случайно скопировалась. | |
| # Это заставит Python использовать системную библиотеку. | |
| RUN rm -rf /app/llama_cpp | |
| # Создаем папки для моделей и кэша | |
| RUN mkdir -p /app/models /app/cache_db && \ | |
| chmod -R 777 /app | |
| EXPOSE 7860 | |
| CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"] |