ARG POETRY_VERSION=2.3.3


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

USER root
WORKDIR /var/app

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 base AS unit-lint

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

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 ["./lint-and-test.sh"]


FROM base AS deploy

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

COPY src/ ./src

USER worker

ENTRYPOINT ["ddtrace-run", "python", "-m", "src.app"]
