# Этап 1: Используем официальный образ Python FROM python:3.11-slim as base # Устанавливаем переменные окружения ENV PYTHONDONTWRITEBYTECODE 1 ENV PYTHONUNBUFFERED 1 ENV POETRY_NO_INTERACTION=1 \ POETRY_VIRTUALENVS_CREATE=false \ POETRY_CACHE_DIR='/var/cache/poetry' # Устанавливаем Poetry RUN pip install poetry # Устанавливаем рабочую директорию WORKDIR /app # Этап 2: Установка зависимостей FROM base as builder # Копируем файлы, необходимые для установки зависимостей COPY pyproject.toml poetry.lock ./ # Устанавливаем зависимости, не устанавливая сам проект RUN poetry install --without dev --no-root # Этап 3: Копирование кода и запуск FROM base as final # Копируем установленные зависимости и исполняемые файлы COPY --from=builder /usr/local /usr/local # Копируем ВЕСЬ ПРОЕКТ (включая папку app) в рабочую директорию COPY . /app # Указываем команду для запуска приложения при старте контейнера CMD ["gunicorn", "-w", "4", "-k", "uvicorn.workers.UvicornWorker", "app.main:app", "-b", "0.0.0.0:8000"]