FROM python:3.11-slim

WORKDIR /app
COPY Pipfile Pipfile.lock .

RUN pip install pipenv
RUN pipenv install --deploy --system

COPY src src

EXPOSE 8000

# Set environment variables used by the deployment. These can be overridden by the user using this image.
ENV NUM_WORKERS=1
ENV OSM_CACHE_DIR=/cache
ENV MEMCACHED_HOST_PATH=none
ENV LOKI_URL=none

# explicitly use a string instead of an argument list to force a shell and variable expansion
CMD fastapi run src/main.py --port 8000 --workers $NUM_WORKERS