This commit is contained in:
commit
46af290db3
100 files changed
+16663
No files matched your search
@@ -0,0 +1,49 @@
|
||||
# Используем slim-образ Python для меньшего размера
|
||||
FROM python:3.11-slim
|
||||
|
||||
# Устанавливаем системные зависимости для WeasyPrint и Pandoc
|
||||
# WeasyPrint требует: cairo, pango, gdk-pixbuf2, libffi
|
||||
# Pandoc — просто устанавливается через apt
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
# Для WeasyPrint
|
||||
libpango-1.0-0 \
|
||||
libpangoft2-1.0-0 \
|
||||
libcairo2 \
|
||||
libgdk-pixbuf2.0-0 \
|
||||
libffi-dev \
|
||||
shared-mime-info \
|
||||
# Для Pandoc
|
||||
pandoc \
|
||||
# Утилиты
|
||||
curl \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Устанавливаем рабочую директорию
|
||||
WORKDIR /app
|
||||
|
||||
# Копируем requirements и устанавливаем Python-зависимости
|
||||
# (отдельным слоем для кэширования)
|
||||
COPY requirements.txt .
|
||||
RUN pip install --no-cache-dir --upgrade pip && \
|
||||
pip install --no-cache-dir -r requirements.txt
|
||||
|
||||
# Копируем исходный код
|
||||
COPY . .
|
||||
|
||||
# Создаём папку для данных (будет переопределена volume при запуске)
|
||||
RUN mkdir -p /app/data
|
||||
|
||||
# Обновляем кэш MIME-типов (нужно для WeasyPrint)
|
||||
RUN update-mime-database /usr/share/mime
|
||||
|
||||
# Переменные окружения по умолчанию
|
||||
ENV PYTHONUNBUFFERED=1 \
|
||||
DATA_DIR=/app/data \
|
||||
OLLAMA_BASE_URL=http://ollama:11434 \
|
||||
ENVIRONMENT=production
|
||||
|
||||
# Открываем порт
|
||||
EXPOSE 8000
|
||||
|
||||
# Команда запуска
|
||||
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
|
||||
Reference in new issue
Block a user