Files
ollama-intel-gpu/Dockerfile
2024-09-29 00:47:39 +02:00

70 lines
2.1 KiB
Docker

FROM ubuntu:24.04
ENV DEBIAN_FRONTEND=noninteractive
ENV PIP_BREAK_SYSTEM_PACKAGES=1
ENV OLLAMA_NUM_GPU=999
ENV OLLAMA_HOST=0.0.0.0:11434
# Install base packages
RUN apt update && \
apt install --no-install-recommends -q -y \
wget \
gnupg \
ca-certificates \
python3-pip \
pkg-config \
build-essential \
python3-dev \
cmake
# Install IPEX-LLM on Linux with Intel GPU
RUN wget -qO - https://repositories.intel.com/gpu/intel-graphics.key | \
gpg --dearmor --output /usr/share/keyrings/intel-graphics.gpg && \
echo "deb [arch=amd64,i386 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/gpu/ubuntu jammy client" | \
tee /etc/apt/sources.list.d/intel-gpu-jammy.list && \
apt update && \
apt install --no-install-recommends -q -y \
udev \
level-zero \
libigdgmm12 \
intel-level-zero-gpu \
intel-opencl-icd
# Install OneAPI packages
RUN wget -qO - https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | \
gpg --dearmor --output /usr/share/keyrings/oneapi-archive-keyring.gpg && \
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | \
tee /etc/apt/sources.list.d/oneAPI.list && \
apt update && \
apt install --no-install-recommends -q -y \
intel-oneapi-common-vars \
intel-oneapi-common-oneapi-vars \
intel-oneapi-diagnostics-utility \
intel-oneapi-compiler-dpcpp-cpp \
intel-oneapi-dpcpp-ct \
intel-oneapi-mkl \
intel-oneapi-mkl-devel \
intel-oneapi-mpi \
intel-oneapi-mpi-devel \
intel-oneapi-dal \
intel-oneapi-dal-devel \
intel-oneapi-ippcp \
intel-oneapi-ippcp-devel \
intel-oneapi-ipp \
intel-oneapi-ipp-devel \
intel-oneapi-tlt \
intel-oneapi-ccl \
intel-oneapi-ccl-devel \
intel-oneapi-dnnl-devel \
intel-oneapi-dnnl \
intel-oneapi-tcm-1.0
# Install serve.sh script
COPY ./scripts/serve.sh /usr/share/lib/serve.sh
# Install ipex-llm[cpp] using pip
RUN pip install --pre --upgrade ipex-llm[cpp]
# Set entrypoint to run the serve.sh script
ENTRYPOINT ["/bin/bash", "/usr/share/lib/serve.sh"]