Files
admin 46af290db3
Build and Push Docker Images / build-and-push (push) Failing after 3m33s
initial commit
2026-11-07 16:39:43 +03:00

50 lines
1.6 KiB
Docker

# Используем 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"]