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

WORKDIR     /var/app
ENV         PYTHONUNBUFFERED=1 \
            PYSETUP_PATH="/opt/pysetup"

##################################
######### Run Downloader #########
##################################
FROM        base AS download

USER        root
COPY        requirements.txt .
RUN         pip3 install --no-cache-dir -r requirements.txt
COPY        src/ ./src
COPY        utils/ ./utils
COPY        config.py ./

USER        worker
ENTRYPOINT  ["python", "-u", "-m", "src.main"]

#################################
### Build image for unit-lint ###
#################################
FROM        base AS unit-lint

# Install requirements to PYSETUP_PATH
WORKDIR     $PYSETUP_PATH
COPY        requirements-test.txt requirements.txt ./
USER        root
RUN         pip3 install --no-cache-dir -r requirements-test.txt

# change to the app dir.
WORKDIR     /var/app
COPY        src/ ./src
COPY        utils/ ./utils
COPY        config.py ./
COPY        scripts/ ./scripts
COPY        docker-compose.yaml ./

USER        worker
ENTRYPOINT  ["./scripts/unit-lint.sh"]

##########################
### Format source code ###
##########################
FROM        base AS format

# Install requirements to PYSETUP_PATH
WORKDIR     $PYSETUP_PATH
COPY        requirements-test.txt requirements.txt ./
USER        root
RUN         pip3 install --no-cache-dir -r requirements-test.txt

# change to the app dir.
WORKDIR     /var/app
COPY        src/ ./src
COPY        utils/ ./utils
COPY        config.py ./
COPY        scripts/ ./scripts
COPY        docker-compose.yaml ./

USER        worker
ENTRYPOINT  ["./scripts/format.sh"]
