# Dockerfile

ARG         AWS_ACCOUNT=086679231553

FROM        ${AWS_ACCOUNT}.dkr.ecr.us-east-1.amazonaws.com/docker-parent-images:python312 AS base

WORKDIR     /var/app

USER        root

# Update and install common packages
RUN         apt-get update  && apt-get install -y  \
            ffmpeg \
            gcc \
            curl \
            tar \
            python3-dev \
            libffi-dev \
            && apt-get clean \
            && rm -rf /var/lib/apt/lists/*

# Create and configure virtualenv
ENV         VIRTUAL_ENV /var/venv
RUN         python3.12 -m venv ${VIRTUAL_ENV}
ENV         PATH "$VIRTUAL_ENV/bin:$PATH"

# Upgrade pip, configure  uwsgi
RUN         pip install --upgrade pip setuptools
RUN         pip install uwsgi
RUN         useradd uwsgi -s /bin/false

# Add application and install requirements
ADD         . /var/app

# Set PYTHONPATH to include the podcast/ directory
ENV         PYTHONPATH="${PYTHONPATH}:/var/app/podcast"

# Remove tests
RUN         rm -rf /var/app/tests

# Install requirements
COPY        requirements.txt ./
COPY        requirements-dev.txt ./
RUN         pip install -r requirements.txt
RUN         pip install -r requirements-dev.txt

# httpretty install complains about some unicode error without this
ENV         LC_ALL=en_US.utf-8
ENV         LC_CTYPE=en_US.UTF-8

# Enables prints in python to flush to stdout
ENV         PYTHONUNBUFFERED 1

# Use a shell entrypoint to ensure the environment variable is expanded and allow arguments dynamically
ENTRYPOINT  ["/bin/sh", "-c", "exec /var/venv/bin/python $SCRIPT_PATH \"$@\"", "--"]
