/
gr.ev.vl
/
TestGen
Обзор
Документация
Войти
/
gr.ev.vl
/
TestGen
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master2
backend/Dockerfile
61 строка
2 KB
gr.ev.vl
Initial commit
06 июн 2026, 02:41
06 июн 2026, 02:41
02fb1fb
Код
Авторство
О чём код?
# ============================================================================= # Backend Dockerfile — multi-stage build # ============================================================================= # --- Этап 1: Сборка зависимостей --- FROM python:3.12-slim AS builder WORKDIR /app # Системные зависимости для сборки RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ libpq-dev \ curl \ && rm -rf /var/lib/apt/lists/* # Установка uv RUN pip install --no-cache-dir uv # Копирование файлов зависимостей COPY pyproject.toml uv.lock* ./ # Установка зависимостей в виртуальное окружение RUN uv sync --no-dev --frozen --no-editable # --- Этап 2: Финальный образ --- FROM python:3.12-slim WORKDIR /app # Runtime-зависимости RUN apt-get update && apt-get install -y --no-install-recommends \ libpq-dev \ curl \ && rm -rf /var/lib/apt/lists/* # Копирование виртуального окружения из builder COPY --from=builder /app/.venv /app/.venv # Копирование исходного кода COPY src/ src/ COPY alembic/ alembic/ COPY alembic.ini . COPY scripts/ scripts/ COPY pyproject.toml . # Активация виртуального окружения ENV PATH="/app/.venv/bin:$PATH" # Непривилегированный пользователь RUN useradd --create-home --shell /bin/bash appuser \ && chown -R appuser:appuser /app USER appuser # Health-check HEALTHCHECK --interval=30s --timeout=10s --retries=3 \ CMD curl -f http://localhost:8000/health || exit 1 EXPOSE 8000 CMD ["uvicorn", "src.testgen.main:app", "--host", "0.0.0.0", "--port", "8000", "--workers", "4"]