FROM python:3.11-slim-bookworm

# uid to run application
ARG USER=1000
# gid to run application
ARG USER_GROUP=1000

# set virtual env path
ENV \
    PATH=/venv/bin:$PATH

# does nothing, for documentation only
EXPOSE 3000

# create and set main app directory
WORKDIR /app

# copy app files to /app directory
COPY ./app .

# set permissions to log directory and install dependencies
RUN \
    chown -R ${USER}:${USER_GROUP} /app/log && \
    python -m venv /venv && \
    pip install -r requirements.txt

# set user to run application
USER ${USER}:${USER_GROUP}

# start shell script when container starts
ENTRYPOINT ["/app/run.sh"]

# no additional parameters to run.sh script
CMD []
