ARG AWS_ACCOUNT=086679231553

### BASE IMAGE ###
FROM ${AWS_ACCOUNT}.dkr.ecr.us-east-1.amazonaws.com/docker-parent-images:python314 AS builder-base

# Install system dependencies
USER root
RUN apt-get update \
    && apt-get install --no-install-recommends -y curl build-essential \
    && rm -rf /var/lib/apt/lists/*

# Set up a virtual environment
RUN python3 -m venv /var/env
ENV PATH="/var/env/bin:$PATH"

# Upgrade pip
RUN pip install --upgrade pip

# Add application
RUN mkdir -p /var/app && chown worker:worker /var/app
COPY --chown=worker:worker . /var/app
WORKDIR /var/app

# Install app dependencies
RUN pip install -r requirements.txt
# mashumaro>=3.15 fixes a Python 3.14 incompatibility; dbt-core<1.12 pins <3.15 so we override after
RUN pip install "mashumaro[msgpack]==3.22"


### LINT AND TEST ###
FROM builder-base AS lint-and-test

# Install dev dependencies
RUN pip install -r requirements-dev.txt
RUN pip install "mashumaro[msgpack]==3.22"

COPY --chown=worker:worker scripts/lint-and-test.sh /lint-and-test.sh
RUN chmod +x /lint-and-test.sh

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


### DEPLOY ###
FROM builder-base AS deploy

COPY --chown=worker:worker scripts/dbt-run.sh /dbt-run.sh
RUN chmod +x /dbt-run.sh

USER worker
ENTRYPOINT ["/dbt-run.sh"]
