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:82 /opt/. /opt/
ENV POETRY_VIRTUALENVS_IN_PROJECT=0 \
    POETRY_VIRTUALENVS_CREATE=0
WORKDIR /var/task
RUN pip install --no-cache --upgrade pip setuptools wheel build && pip install --no-cache poetry==2.3.4
COPY pyproject.toml poetry.lock ./

FROM base AS deploy
RUN poetry install --only main --no-root --no-cache
COPY src/ ./src
EXPOSE 8080
ENV DD_LAMBDA_HANDLER=src.app.handler
CMD [ "datadog_lambda.handler.handler" ]

FROM base AS unit-lint
RUN poetry install --no-root --no-cache --extras dev
COPY docker-compose.yaml ./
COPY src/ ./src
COPY tests/ ./tests
COPY scripts/ ./scripts
ENTRYPOINT ["scripts/unit-lint.sh"]

FROM base AS dev
RUN poetry install --only main --no-root --no-cache
COPY src/ ./src
COPY dev.py ./
EXPOSE 8080
ENTRYPOINT [ "python", "dev.py"]

FROM unit-lint AS integration-test
ENTRYPOINT ["scripts/test-integration.sh"]

FROM base AS poetry_update
COPY scripts/update-poetry-lock.sh /var/task/scripts/
ENTRYPOINT ["scripts/update-poetry-lock.sh"]

FROM unit-lint AS format
ENTRYPOINT ["scripts/format.sh"]
