# STAGE 1: Базовый образ
FROM docker-hub.umschool.net/umschool/umschool-python-build:3.11.4 as base

ENV PKGS_DIR=/install \
    PIP_NO_CACHE_DIR=off \
    PIP_DISABLE_PIP_VERSION_CHECK=on \
    PIP_DEFAULT_TIMEOUT=100


# STAGE 2: Образ сборки зависимостей
FROM base as builder

RUN apt update
RUN apt install -y gcc g++ python3-dev zlib1g-dev libbz2-dev liblz4-dev libzstd-dev libsnappy-dev librocksdb-dev
RUN pip install --upgrade pip
RUN pip install poetry

RUN mkdir $PKGS_DIR
RUN mkdir /code

WORKDIR /code

COPY poetry.lock pyproject.toml /code/
RUN poetry export --without lint --without-hashes -f requirements.txt --output ./requirements.txt
RUN --mount=type=secret,id=pip_extra_index_url \
    pip install --disable-pip-version-check --no-cache-dir --target=$PKGS_DIR -r ./requirements.txt --extra-index-url $(cat /run/secrets/pip_extra_index_url)

# STAGE 3: Основной образ для запуска сервиса
FROM base

ENV PYTHONPATH=/usr/local
COPY --from=builder /install /usr/local

# Копируем код сервиса
WORKDIR /app
COPY app/ .
