1- ARG OPENVINO_VERSION_MAJOR=2026.0
2- ARG OPENVINO_VERSION_FULL=2026.0 .0.20965.c6d6a13a886
1+ ARG OPENVINO_VERSION_MAJOR=2026.2
2+ ARG OPENVINO_VERSION_FULL=2026.2 .0.21903.52ddc073857
33ARG UBUNTU_VERSION=24.04
44
55# Intel GPU driver versions. https://github.com/intel/compute-runtime/releases
6- ARG IGC_VERSION=v2.30.1
7- ARG IGC_VERSION_FULL=2_2.30.1+20950
8- ARG COMPUTE_RUNTIME_VERSION=26.09.37435 .1
9- ARG COMPUTE_RUNTIME_VERSION_FULL=26.09.37435 .1-0
10- ARG IGDGMM_VERSION=22.9 .0
6+ ARG IGC_VERSION=v2.34.4
7+ ARG IGC_VERSION_FULL=2_2.34.4+21428
8+ ARG COMPUTE_RUNTIME_VERSION=26.18.38308 .1
9+ ARG COMPUTE_RUNTIME_VERSION_FULL=26.18.38308 .1-0
10+ ARG IGDGMM_VERSION=22.10 .0
1111
1212# Intel NPU driver versions. https://github.com/intel/linux-npu-driver/releases
13- ARG NPU_DRIVER_VERSION=v1.32 .0
14- ARG NPU_DRIVER_FULL=v1.32 .0.20260402-23905121947
13+ ARG NPU_DRIVER_VERSION=v1.33 .0
14+ ARG NPU_DRIVER_FULL=v1.33 .0.20260529-26625960453
1515ARG LIBZE1_VERSION=1.27.0-1~24.04~ppa2
1616
1717# Optional proxy build arguments
@@ -46,13 +46,18 @@ RUN apt-get update && \
4646 intel-opencl-icd && \
4747 rm -rf /var/lib/apt/lists/*
4848
49- # Install OpenVINO for Ubuntu 24.04
49+ # OpenVINO toolkit and GPU/NPU drivers are cached via BuildKit cache mounts to avoid re-downloading on rebuilds.
50+ # Install OpenVINO for Ubuntu 24.04.
5051ARG OPENVINO_VERSION_MAJOR
5152ARG OPENVINO_VERSION_FULL
52- RUN mkdir -p /opt/intel && \
53- wget https://storage.openvinotoolkit.org/repositories/openvino/packages/${OPENVINO_VERSION_MAJOR}/linux/openvino_toolkit_ubuntu24_${OPENVINO_VERSION_FULL}_x86_64.tgz && \
54- tar -xf openvino_toolkit_ubuntu24_${OPENVINO_VERSION_FULL}_x86_64.tgz && \
55- mv openvino_toolkit_ubuntu24_${OPENVINO_VERSION_FULL}_x86_64 /opt/intel/openvino_${OPENVINO_VERSION_MAJOR} && \
53+ RUN --mount=type=cache,target=/var/cache/openvino,sharing=locked \
54+ mkdir -p /opt/intel && \
55+ TGZ=/var/cache/openvino/openvino_toolkit_ubuntu24_${OPENVINO_VERSION_FULL}_x86_64.tgz && \
56+ if [ ! -f "$TGZ" ]; then \
57+ wget -O "$TGZ" https://storage.openvinotoolkit.org/repositories/openvino/packages/${OPENVINO_VERSION_MAJOR}/linux/openvino_toolkit_ubuntu24_${OPENVINO_VERSION_FULL}_x86_64.tgz; \
58+ fi && \
59+ tar -xf "$TGZ" -C /opt/intel/ && \
60+ mv /opt/intel/openvino_toolkit_ubuntu24_${OPENVINO_VERSION_FULL}_x86_64 /opt/intel/openvino_${OPENVINO_VERSION_MAJOR} && \
5661 cd /opt/intel/openvino_${OPENVINO_VERSION_MAJOR} && \
5762 echo "Y" | ./install_dependencies/install_openvino_dependencies.sh && \
5863 cd - && \
@@ -68,14 +73,14 @@ COPY . .
6873RUN bash -c "source ${OpenVINO_DIR}/setupvars.sh && \
6974 cmake -B build/ReleaseOV -G Ninja \
7075 -DCMAKE_BUILD_TYPE=Release \
76+ -DLLAMA_BUILD_TESTS=OFF \
7177 -DGGML_OPENVINO=ON && \
72- cmake --build build/ReleaseOV -j$(nproc) "
78+ cmake --build build/ReleaseOV --parallel "
7379
74- # Copy all necessary libraries
80+ # Copy all necessary libraries (build outputs + OpenVINO runtime libs)
7581RUN mkdir -p /app/lib && \
76- find build/ReleaseOV -name '*.so*' -exec cp {} /app/lib \; && \
77- find ${OpenVINO_DIR}/runtime/lib/intel64 -name '*.so*' -exec cp -P {} /app/lib \; 2>/dev/null || \
78- find ${OpenVINO_DIR}/lib/intel64 -name '*.so*' -exec cp -P {} /app/lib \;
82+ find build/ReleaseOV -name '*.so*' -exec cp -P {} /app/lib \; && \
83+ find "${OpenVINO_DIR}/runtime/lib/intel64" -name '*.so*' -exec cp -P {} /app/lib \;
7984
8085# Create runtime directories and copy binaries
8186RUN mkdir -p /app/full \
@@ -120,33 +125,41 @@ ARG IGC_VERSION_FULL
120125ARG COMPUTE_RUNTIME_VERSION
121126ARG COMPUTE_RUNTIME_VERSION_FULL
122127ARG IGDGMM_VERSION
123- RUN mkdir /tmp/neo/ && cd /tmp/neo/ \
124- && wget https://github.com/intel/intel-graphics-compiler/releases/download/${IGC_VERSION}/intel-igc-core-${IGC_VERSION_FULL}_amd64.deb \
125- && wget https://github.com/intel/intel-graphics-compiler/releases/download/${IGC_VERSION}/intel-igc-opencl-${IGC_VERSION_FULL}_amd64.deb \
126- && wget https://github.com/intel/compute-runtime/releases/download/${COMPUTE_RUNTIME_VERSION}/intel-ocloc-dbgsym_${COMPUTE_RUNTIME_VERSION_FULL}_amd64.ddeb \
127- && wget https://github.com/intel/compute-runtime/releases/download/${COMPUTE_RUNTIME_VERSION}/intel-ocloc_${COMPUTE_RUNTIME_VERSION_FULL}_amd64.deb \
128- && wget https://github.com/intel/compute-runtime/releases/download/${COMPUTE_RUNTIME_VERSION}/intel-opencl-icd-dbgsym_${COMPUTE_RUNTIME_VERSION_FULL}_amd64.ddeb \
129- && wget https://github.com/intel/compute-runtime/releases/download/${COMPUTE_RUNTIME_VERSION}/intel-opencl-icd_${COMPUTE_RUNTIME_VERSION_FULL}_amd64.deb \
130- && wget https://github.com/intel/compute-runtime/releases/download/${COMPUTE_RUNTIME_VERSION}/libigdgmm12_${IGDGMM_VERSION}_amd64.deb \
131- && wget https://github.com/intel/compute-runtime/releases/download/${COMPUTE_RUNTIME_VERSION}/libze-intel-gpu1-dbgsym_${COMPUTE_RUNTIME_VERSION_FULL}_amd64.ddeb \
132- && wget https://github.com/intel/compute-runtime/releases/download/${COMPUTE_RUNTIME_VERSION}/libze-intel-gpu1_${COMPUTE_RUNTIME_VERSION_FULL}_amd64.deb \
133- && dpkg --install *.deb \
134- && rm -rf /tmp/neo/
128+ RUN --mount=type=cache,target=/var/cache/intel-gpu,sharing=locked \
129+ set -eux; \
130+ cd /var/cache/intel-gpu; \
131+ for url in \
132+ https://github.com/intel/intel-graphics-compiler/releases/download/${IGC_VERSION}/intel-igc-core-${IGC_VERSION_FULL}_amd64.deb \
133+ https://github.com/intel/intel-graphics-compiler/releases/download/${IGC_VERSION}/intel-igc-opencl-${IGC_VERSION_FULL}_amd64.deb \
134+ https://github.com/intel/compute-runtime/releases/download/${COMPUTE_RUNTIME_VERSION}/intel-ocloc_${COMPUTE_RUNTIME_VERSION_FULL}_amd64.deb \
135+ https://github.com/intel/compute-runtime/releases/download/${COMPUTE_RUNTIME_VERSION}/intel-opencl-icd_${COMPUTE_RUNTIME_VERSION_FULL}_amd64.deb \
136+ https://github.com/intel/compute-runtime/releases/download/${COMPUTE_RUNTIME_VERSION}/libigdgmm12_${IGDGMM_VERSION}_amd64.deb \
137+ https://github.com/intel/compute-runtime/releases/download/${COMPUTE_RUNTIME_VERSION}/libze-intel-gpu1_${COMPUTE_RUNTIME_VERSION_FULL}_amd64.deb ; do \
138+ f=$(basename "$url" ); \
139+ [ -f "$f" ] || wget -q -O "$f" "$url" ; \
140+ done; \
141+ apt-get update; \
142+ apt-get install -y --no-install-recommends ./*.deb; \
143+ rm -rf /var/lib/apt/lists/*
135144
136145# Install NPU drivers
137146ARG NPU_DRIVER_VERSION
138147ARG NPU_DRIVER_FULL
139148ARG LIBZE1_VERSION
140- RUN mkdir /tmp/npu/ && cd /tmp/npu/ \
141- && wget https://github.com/intel/linux-npu-driver/releases/download/${NPU_DRIVER_VERSION}/linux-npu-driver-${NPU_DRIVER_FULL}-ubuntu2404.tar.gz \
142- && tar -xf linux-npu-driver-${NPU_DRIVER_FULL}-ubuntu2404.tar.gz \
143- && dpkg --install *.deb \
144- && rm -rf /tmp/npu/
145-
146- RUN cd /tmp \
147- && wget https://snapshot.ppa.launchpadcontent.net/kobuk-team/intel-graphics/ubuntu/20260324T100000Z/pool/main/l/level-zero-loader/libze1_${LIBZE1_VERSION}_amd64.deb \
148- && dpkg --install libze1_${LIBZE1_VERSION}_amd64.deb \
149- && rm libze1_${LIBZE1_VERSION}_amd64.deb
149+ RUN --mount=type=cache,target=/var/cache/intel-npu,sharing=locked \
150+ set -eux; \
151+ TGZ=/var/cache/intel-npu/linux-npu-driver-${NPU_DRIVER_FULL}-ubuntu2404.tar.gz; \
152+ if [ ! -f "$TGZ" ]; then \
153+ wget -q -O "$TGZ" https://github.com/intel/linux-npu-driver/releases/download/${NPU_DRIVER_VERSION}/linux-npu-driver-${NPU_DRIVER_FULL}-ubuntu2404.tar.gz; \
154+ fi; \
155+ DEB=/var/cache/intel-npu/libze1_${LIBZE1_VERSION}_amd64.deb; \
156+ if [ ! -f "$DEB" ]; then \
157+ wget -q -O "$DEB" https://snapshot.ppa.launchpadcontent.net/kobuk-team/intel-graphics/ubuntu/20260324T100000Z/pool/main/l/level-zero-loader/libze1_${LIBZE1_VERSION}_amd64.deb; \
158+ fi; \
159+ mkdir /tmp/npu/ && cd /tmp/npu/ && tar -xf "$TGZ" && cp "$DEB" .; \
160+ apt-get update; \
161+ apt-get install -y --no-install-recommends ./*.deb; \
162+ rm -rf /tmp/npu/ /var/lib/apt/lists/*
150163
151164COPY --from=build /app/lib/ /app/
152165
@@ -166,22 +179,26 @@ RUN apt-get update && \
166179 python3 \
167180 python3-venv \
168181 python3-pip && \
169- python3 -m venv /ov -venv && \
170- /ov -venv/bin/pip install --no-cache-dir --upgrade pip setuptools wheel && \
171- /ov -venv/bin/pip install --no-cache-dir -r requirements.txt && \
182+ python3 -m venv /openvino -venv && \
183+ /openvino -venv/bin/pip install --no-cache-dir --upgrade pip setuptools wheel && \
184+ /openvino -venv/bin/pip install --no-cache-dir -r requirements.txt && \
172185 apt-get autoremove -y && \
173186 apt-get clean && \
174187 rm -rf /tmp/* /var/tmp/* && \
175188 find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete && \
176189 find /var/cache -type f -delete
177190
178- ENTRYPOINT ["/bin/bash" , "-c" , "source /ov-venv/bin/activate && exec /app/tools.sh \" $@\" " , "--" ]
191+ # Activate the venv
192+ ENV VIRTUAL_ENV=/openvino-venv \
193+ PATH=/openvino-venv/bin:$PATH
194+
195+ ENTRYPOINT ["/app/tools.sh" ]
179196
180197
181198# ## Light, CLI only
182199FROM base AS light
183200
184- COPY --from=build /app/full/llama-cli /app/
201+ COPY --from=build /app/full/llama-cli /app/full/llama-completion /app/
185202
186203WORKDIR /app
187204
0 commit comments