FROM        086679231553.dkr.ecr.us-east-1.amazonaws.com/docker-parent-images:lambda-python313 AS base

ARG         version
LABEL       Version=$version
ENV         build_version=$version

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

ENV         POETRY_VIRTUALENVS_IN_PROJECT=0
ENV         POETRY_VIRTUALENVS_CREATE=0

# Install poetry
WORKDIR     /var/task

RUN         pip install --no-cache --upgrade pip && \
            pip install --no-cache poetry==2.3.3

COPY        pyproject.toml poetry.lock /var/task/

################################
### Generate poetry lockfile ###
################################
FROM        base AS poetry-update

COPY        scripts/update-poetry-lock.sh /var/task/scripts/
ENTRYPOINT  ["scripts/update-poetry-lock.sh"]

##############################
### Build image for deploy ###
##############################
FROM        base AS deploy

RUN         poetry install --only main --no-root --no-cache

COPY        src /var/task/src

EXPOSE      8080

ENV         DD_LAMBDA_HANDLER=src.app.handler
CMD         [ "datadog_lambda.handler.handler" ]

#################################
### Build image for unit-lint ###
#################################
FROM        base AS unit-lint

RUN         poetry install --no-root --no-cache --extras dev

COPY        src /var/task/src
COPY        tests /var/task/tests
COPY        scripts/unit-lint.sh /var/task/scripts/

ENTRYPOINT  ["scripts/unit-lint.sh"]

########################################
### Build image for integration-test ###
########################################
FROM        base AS integration-test

RUN         poetry install --no-root --no-cache --extras dev

COPY        src /var/task/src
COPY        tests /var/task/tests
COPY        scripts/integration.sh /var/task/scripts/

ENTRYPOINT  ["scripts/integration.sh"]
