we2app commited on
Commit
78a7f1e
·
verified ·
1 Parent(s): 89ad9d1

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +29 -9
Dockerfile CHANGED
@@ -1,21 +1,35 @@
1
- FROM ghcr.io/ggml-org/llama.cpp:server
2
 
3
- RUN apt update && apt install wget -y && rm -rf /var/lib/apt/lists/*
 
 
4
 
5
  # Create a dedicated directory to organize the models
6
  RUN mkdir -p /models
7
 
 
 
 
 
 
8
  # --- MODEL 1: Gemma 4 Multimodal + Speculative Setup ---
9
- RUN wget "https://huggingface.co/unsloth/gemma-4-E2B-it-qat-GGUF/resolve/main/gemma-4-E2B-it-qat-UD-Q4_K_XL.gguf" -O /models/gemma-4-E2B-it-qat-UD-Q4_K_XL.gguf
10
- RUN wget "https://huggingface.co/unsloth/gemma-4-E2B-it-qat-GGUF/resolve/main/mtp-gemma-4-E2B-it.gguf" -O /models/mtp-gemma-4-E2B-it.gguf
11
- RUN wget "https://huggingface.co/unsloth/gemma-4-E2B-it-qat-GGUF/resolve/main/mmproj-F16.gguf" -O /models/gemma-4-E2B-it-mmproj.gguf
12
 
13
- # --- MODEL 2: Gemma 3 1B Model (Corrected Direct Download Link) ---
14
  RUN wget "https://huggingface.co/MaziyarPanahi/gemma-3-1b-it-GGUF/resolve/main/gemma-3-1b-it.Q3_K_M.gguf" -O /models/gemma-3-1b-it.Q3_K_M.gguf
15
 
 
 
 
 
 
 
 
 
16
 
17
  # --- CREATE ROUTER CONFIGURATION ---
18
- # Appending configuration step-by-step to avoid any multiline shell escaping issues
19
  RUN echo "[gemma-4-vision]" > /models.ini && \
20
  echo "model = /models/gemma-4-E2B-it-qat-UD-Q4_K_XL.gguf" >> /models.ini && \
21
  echo "spec-draft-model = /models/mtp-gemma-4-E2B-it.gguf" >> /models.ini && \
@@ -30,8 +44,14 @@ RUN echo "[gemma-4-vision]" > /models.ini && \
30
  echo "[gemma-3-1b]" >> /models.ini && \
31
  echo "model = /models/gemma-3-1b-it.Q3_K_M.gguf" >> /models.ini && \
32
  echo "ctx-size = 4096" >> /models.ini && \
33
- echo "flash-attn = on" >> /models.ini
34
-
 
 
 
 
 
 
35
 
36
  # --- START SERVER IN ROUTER MODE ---
37
  CMD [ \
 
1
+ FROM ghcr.io/ggml-org/llama.cpp:full
2
 
3
+ WORKDIR /app
4
+
5
+ RUN apt update && apt install -y python3 python3-pip python3-venv wget && rm -rf /var/lib/apt/lists/*
6
 
7
  # Create a dedicated directory to organize the models
8
  RUN mkdir -p /models
9
 
10
+ # Set up Python virtual environment for huggingface_hub tools
11
+ RUN python3 -m venv /opt/venv
12
+ ENV PATH="/opt/venv/bin:$PATH"
13
+ RUN pip install -U pip huggingface_hub
14
+
15
  # --- MODEL 1: Gemma 4 Multimodal + Speculative Setup ---
16
+ RUN wget "https://huggingface.co/unsloth/gemma-4-E2B-it-qat-GGUF/resolve/main/gemma-4-E2B-it-qat-UD-Q4_K_XL.gguf" -O /models/gemma-4-E2B-it-qat-UD-Q4_K_XL.gguf && \
17
+ wget "https://huggingface.co/unsloth/gemma-4-E2B-it-qat-GGUF/resolve/main/mtp-gemma-4-E2B-it.gguf" -O /models/mtp-gemma-4-E2B-it.gguf && \
18
+ wget "https://huggingface.co/unsloth/gemma-4-E2B-it-qat-GGUF/resolve/main/mmproj-F16.gguf" -O /models/gemma-4-E2B-it-mmproj.gguf
19
 
20
+ # --- MODEL 2: Gemma 3 1B Model ---
21
  RUN wget "https://huggingface.co/MaziyarPanahi/gemma-3-1b-it-GGUF/resolve/main/gemma-3-1b-it.Q3_K_M.gguf" -O /models/gemma-3-1b-it.Q3_K_M.gguf
22
 
23
+ # --- MODEL 3: Gemma 4 26B Multimodal (Added via huggingface_hub) ---
24
+ ARG HF_TOKEN
25
+ RUN python3 -c 'from huggingface_hub import hf_hub_download; \
26
+ import os; \
27
+ token = os.getenv("HF_TOKEN") or None; \
28
+ repo="unsloth/gemma-4-26B-A4B-it-GGUF"; \
29
+ hf_hub_download(repo_id=repo, filename="gemma-4-26B-A4B-it-UD-Q4_K_XL.gguf", local_dir="/models", token=token); \
30
+ hf_hub_download(repo_id=repo, filename="mmproj-BF16.gguf", local_dir="/models", token=token)'
31
 
32
  # --- CREATE ROUTER CONFIGURATION ---
 
33
  RUN echo "[gemma-4-vision]" > /models.ini && \
34
  echo "model = /models/gemma-4-E2B-it-qat-UD-Q4_K_XL.gguf" >> /models.ini && \
35
  echo "spec-draft-model = /models/mtp-gemma-4-E2B-it.gguf" >> /models.ini && \
 
44
  echo "[gemma-3-1b]" >> /models.ini && \
45
  echo "model = /models/gemma-3-1b-it.Q3_K_M.gguf" >> /models.ini && \
46
  echo "ctx-size = 4096" >> /models.ini && \
47
+ echo "flash-attn = on" >> /models.ini && \
48
+ echo "" >> /models.ini && \
49
+ echo "[gemma-4-26b-vision]" >> /models.ini && \
50
+ echo "model = /models/gemma-4-26B-A4B-it-UD-Q4_K_XL.gguf" >> /models.ini && \
51
+ echo "mmproj = /models/mmproj-BF16.gguf" >> /models.ini && \
52
+ echo "cache-type-k = q8_0" >> /models.ini && \
53
+ echo "cache-type-v = iq4_nl" >> /models.ini && \
54
+ echo "ctx-size = 64000" >> /models.ini
55
 
56
  # --- START SERVER IN ROUTER MODE ---
57
  CMD [ \