diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..74edcc9 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,26 @@ +FROM intel/python:latest + +ARG DEBIAN_FRONTEND=noninteractive + +RUN apt update && \ + apt install -y --no-install-recommends software-properties-common gnupg apt-utils git && \ + wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null && \ + 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 intel-oneapi-mkl -y --no-install-recommends + +RUN apt install intel-oneapi-compiler-dpcpp-cpp intel-oneapi-mkl-devel gcc g++ pkg-config cmake -y --no-install-recommends && \ + . /opt/intel/oneapi/setvars.sh && \ + export CMAKE_ARGS="-DLLAMA_BLAS=ON -DLLAMA_NATIVE=1 -DLLAMA_LTO=1 -DLLAMA_BLAS_VENDOR=Intel10_64lp -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx" && \ + export FORCE_CMAKE=1 && \ + pip install git+https://git.baalajimaestro.me/baalajimaestro/llama.cpp.git fastapi uvicorn sse-starlette pydantic-settings starlette-context && \ + apt remove intel-oneapi-compiler-dpcpp-cpp intel-oneapi-mkl-devel gcc g++ pkg-config cmake -y && \ + apt autoremove -y + +ADD entrypoint.sh / + +EXPOSE 8000 +ENV HOST 0.0.0.0 + +ENTRYPOINT ["/entrypoint.sh"] + diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100755 index 0000000..4ebfe0a --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,5 @@ +#! /usr/bin/env bash + +source /opt/intel/oneapi/setvars.sh +python -m llama_cpp.server $@ +