FROM python:3.14.3-slim-bookworm AS base

RUN         apt-get update && apt-get install gcc g++ curl git tar zip -y

WORKDIR     /var/app

RUN         pip install --upgrade pip setuptools wheel
RUN         pip install pipenv

ADD         analytics /var/app/analytics
ADD         spec /var/app/spec
ADD         application.py /var/app/application.py
ADD         Makefile /var/app/Makefile
ADD         Pipfile /var/app/Pipfile
ADD         Pipfile.lock /var/app/Pipfile.lock
RUN         pipenv install --ignore-pipfile --deploy --system

FROM       base AS deploy
RUN        mkdir /var/app/.snowflake
RUN        chmod 777 /var/app/.snowflake
ENV        SNOWFLAKE_HOME=/var/app/
RUN        useradd uwsgi -s /bin/false
RUN        mkdir /var/log/uwsgi
RUN        chown -R uwsgi:uwsgi /var/log/uwsgi
ADD        uwsgi-start.sh /
RUN        chmod +x /uwsgi-start.sh
ENTRYPOINT ["/uwsgi-start.sh"]
EXPOSE     8080

# pull-request checks stage
FROM base AS pr_tests
ADD         tests /var/app/tests
RUN         pipenv install --system --dev --ignore-pipfile
