FROM 483193324480.dkr.ecr.us-east-1.amazonaws.com/python:3.7-slim-builder as builder

FROM builder as build-venv

# Allow Jenkins to override with internal mirror
ARG PYPI_INDEX_URL=https://pypi.org/simple
ENV PYPI_INDEX_URL=${PYPI_INDEX_URL}
ENV PIP_DISABLE_PIP_VERSION_CHECK=on

WORKDIR /app

COPY pyproject.toml poetry.lock /app/

RUN python -m venv /venv \
    && . /venv/bin/activate \
    && pip --no-cache-dir install --upgrade --index-url ${PYPI_INDEX_URL} pip setuptools wheel \
    && pip install poetry \
    && poetry config virtualenvs.create false \
    && poetry install --no-interaction --no-ansi --no-dev

FROM build-venv as build-base

RUN . /venv/bin/activate \
    && pip install poetry \
    && poetry config virtualenvs.create false \
    && poetry install --no-interaction --no-ansi

FROM build-base as build-test

RUN . /venv/bin/activate \
    && pip install poetry \
    && poetry config virtualenvs.create false \
    && poetry install --no-interaction --no-ansi


FROM 483193324480.dkr.ecr.us-east-1.amazonaws.com/python:3.7-slim-runner as main

ARG VERSION
ARG REVISION
ARG BUILDTIME

LABEL com.datadoghq.tags.service=marketing-api
LABEL com.datadoghq.tags.version=${VERSION}
LABEL REVISION=${REVISION}
LABEL BUILDTIME=${BUILDTIME}

ENV DD_SERVICE=marketing-api
ENV DD_VERSION=${VERSION}
ENV SENTRY_PROJECT=marketing-data-entry

COPY --from=build-base /venv /venv

USER ${APP_USER}

COPY . /app

WORKDIR /app/app

EXPOSE 8000

ENV PATH="/venv/bin/:${PATH}"

CMD ["ddtrace-run", "gunicorn", "-w 4", "-b :8000", "-t 120", "app:app", "--reload"]

FROM build-test as test

COPY . /app

WORKDIR /app/
