Files
marquiz-metrics/Dockerfile

38 lines
1.4 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Этап 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"]