FROM public.ecr.aws/lambda/python:3.13 AS parent

########
# base #
########
FROM parent AS base

RUN dnf -y update && \
    dnf -y install make gcc gcc-c++

RUN --mount=type=cache,target=/root/.cache/pip \
    python -m venv /poetry && \
    /poetry/bin/pip install --upgrade pip && \
    /poetry/bin/pip install poetry==2.4.1

ENV POETRY_NO_INTERACTION=1 \
    POETRY_VIRTUALENVS_IN_PROJECT=1 \
    POETRY_VIRTUALENVS_CREATE=1 \
    POETRY_CACHE_DIR=/tmp/poetry_cache \
    PATH=/poetry/bin:$PATH

COPY pyproject.toml poetry.lock ./
RUN --mount=type=cache,target=$POETRY_CACHE_DIR \
    poetry install --without dev --no-root

#############
# unit-lint #
#############
FROM base AS unit-lint

RUN --mount=type=cache,target=$POETRY_CACHE_DIR \
    poetry install --no-root

COPY . ./

ENTRYPOINT ["make", "unit_lint"]

##########
# deploy #
##########
FROM parent AS deploy

RUN dnf -y update

COPY --from=base /var/task/.venv ./.venv

ENV PYTHONPATH=/var/task/.venv/lib/python3.13/site-packages

COPY --from=public.ecr.aws/datadog/lambda-extension:74 /opt/. /opt/

COPY index.py ./
COPY auto_report_run ./auto_report_run

ENV DD_LAMBDA_HANDLER=index.handler \
    DD_CAPTURE_LAMBDA_PAYLOAD=true

CMD ["datadog_lambda.handler.handler"]

EXPOSE 8080
