ARG POETRY_VERSION=2.3.4
ARG DATADOG_LAMBDA_EXTENSION_VERSION=92


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

ARG POETRY_VERSION
RUN pip install --no-cache-dir poetry==${POETRY_VERSION}
COPY pyproject.toml poetry.lock ./
RUN poetry config virtualenvs.create false


FROM hadolint/hadolint:v2.12.0-alpine AS hadolint
FROM koalaman/shellcheck:v0.10.0 AS shellcheck
FROM public.ecr.aws/datadog/lambda-extension:${DATADOG_LAMBDA_EXTENSION_VERSION} AS datadog


FROM base AS unit-lint

RUN poetry install --no-interaction --no-root

COPY --from=hadolint /bin/hadolint /usr/bin/hadolint
COPY --from=shellcheck /bin/shellcheck /usr/bin/shellcheck

COPY src/ ./src
COPY tests/ ./tests
COPY .hadolint.yaml .yamllint.yaml docker-compose.yaml software-catalog.yaml Dockerfile lint-and-test.sh ./

ENTRYPOINT ["/var/task/lint-and-test.sh"]


FROM base AS deploy

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

COPY --from=datadog /opt/. /opt/
COPY src/ ./src

EXPOSE 8080

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