FROM ubuntu:jammy

RUN apt-get update --yes --quiet && DEBIAN_FRONTEND=noninteractive apt-get install --yes --quiet --no-install-recommends \
    software-properties-common \
    build-essential apt-utils \
    python3.10 \
    pip \
    wget \
    wget curl vim git ca-certificates kmod \
 && rm -rf /var/lib/apt/lists/*

RUN git clone https://github.com/ggerganov/llama.cpp
WORKDIR "/llama.cpp"
RUN make
RUN pip install sentencepiece --no-cache-dir

RUN pip install lmql[hf]
RUN pip install peft


WORKDIR /

COPY backend/src/downloadLocalModels.py /downloadLocalModels.py
COPY backend/src/models_config.json /models_config.json

RUN mkdir models
RUN python3 downloadLocalModels.py

COPY backend/entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

EXPOSE 4000
CMD ["lmql", "serve-model", "--port", "4000", "--host", "0.0.0.0"]
