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

WORKDIR /var/app
USER worker

ENV PYTHONUNBUFFERED=1 \
    PYTHONDONTWRITEBYTECODE=1

RUN pip install --no-cache-dir --upgrade pip setuptools
COPY requirements.txt ./

FROM base AS dev
ENV RUFF_CACHE_DIR=/tmp/.ruff_cache
COPY requirements-test.txt ./
RUN pip install --no-cache-dir -r requirements-test.txt
COPY app.py docker-compose.yaml pyproject.toml ./
COPY src/ ./src
COPY tests/ ./tests

FROM dev AS lint-and-test
COPY scripts/lint-and-test.sh ./scripts/lint-and-test.sh
ENTRYPOINT ["./scripts/lint-and-test.sh"]

FROM dev AS format
COPY scripts/format.sh ./scripts/format.sh
ENTRYPOINT ["./scripts/format.sh"]

FROM base AS app
RUN pip install --no-cache-dir -r requirements.txt
COPY src ./src
COPY app.py ./
ENTRYPOINT ["python", "app.py"]
