File size: 1,628 Bytes
78b627f
3e50743
9a57e00
 
 
be1949d
e5bf1d7
be1949d
e5bf1d7
7131f6c
78b627f
 
6cba908
be1949d
 
998196e
636bd97
 
be1949d
6db6156
694d9c3
396d41c
be1949d
694d9c3
be1949d
694d9c3
 
8235514
be1949d
694d9c3
 
 
c111476
694d9c3
 
79d7c2e
6db6156
be1949d
694d9c3
6db6156
 
 
694d9c3
be1949d
 
 
 
c1ac85e
6db6156
89bd3f8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
FROM ubuntu:22.04

ENV MODEL_NAME="llava-1.6-mistral-7b-gguf"
ENV DEFAULT_MODEL_FILE="llava-v1.6-mistral-7b.Q3_K_XS.gguf"
ENV MODEL_USER="cjpais"
ENV DEFAULT_MODEL_BRANCH="main"
ENV DEFAULT_CLIP_MODEL_FILE="mmproj-model-f16.gguf"
ENV MODEL_URL="https://huggingface.co/${MODEL_USER}/${MODEL_NAME}/resolve/${DEFAULT_MODEL_BRANCH}/${DEFAULT_MODEL_FILE}"
ENV CLIP_MODEL_URL="https://huggingface.co/${MODEL_USER}/${MODEL_NAME}/resolve/${DEFAULT_MODEL_BRANCH}/${DEFAULT_CLIP_MODEL_FILE}"

ENV DEBIAN_FRONTEND=noninteractive

RUN apt update && \
    apt install --no-install-recommends -y build-essential python3 python3-pip wget curl git && \
    apt clean && rm -rf /var/lib/apt/lists/*

WORKDIR /app

COPY requirements.txt ./

RUN python3 -m pip install --upgrade pip && \
    pip install -r requirements.txt

# Downloading the models
RUN echo ${MODEL_URL} && \
    wget -O /app/${DEFAULT_MODEL_FILE} ${MODEL_URL} && \
    echo ${CLIP_MODEL_URL} && \
    wget -O /app/${DEFAULT_CLIP_MODEL_FILE} ${CLIP_MODEL_URL}

# Creating a non-root user
RUN useradd -m -u 1000 user && \
    mkdir -p /home/user/app && \
    mv /app/${DEFAULT_MODEL_FILE} /home/user/app && \
    mv /app/${DEFAULT_CLIP_MODEL_FILE} /home/user/app && \
    chown -R user:user /home/user/app

USER user
ENV HOME=/home/user \
    PATH=/home/user/.local/bin:$PATH

WORKDIR $HOME/app

# Copying the rest of your application
COPY --chown=user . .

RUN ls -al

EXPOSE 8080

CMD ["python3", "-m", "llama_cpp.server", "--model", "/home/user/app/llava-v1.6-mistral-7b.Q3_K_XS.gguf", "--clip_model_path", "/home/user/app/mmproj-model-f16.gguf", "--chat_format", "llava-1-5"]