61 lines
No EOL
2 KiB
Docker
61 lines
No EOL
2 KiB
Docker
# Build stage
|
|
FROM golang:1.22-bookworm as build
|
|
|
|
# Install necessary dependencies
|
|
RUN apt update && apt install -y \
|
|
wget \
|
|
gnupg \
|
|
software-properties-common \
|
|
git \
|
|
apt-utils
|
|
|
|
# Install Intel oneAPI
|
|
RUN 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 -y --no-install-recommends \
|
|
intel-oneapi-mkl \
|
|
intel-oneapi-compiler-dpcpp-cpp \
|
|
intel-oneapi-mkl-devel \
|
|
gcc \
|
|
g++ \
|
|
pkg-config \
|
|
cmake
|
|
|
|
WORKDIR /app
|
|
|
|
ARG GIN_MODE=release
|
|
|
|
ADD . .
|
|
|
|
RUN . /opt/intel/oneapi/setvars.sh && \
|
|
OLLAMA_CUSTOM_CPU_DEFS="-DGGML_BLAS=ON -DGGML_BLAS_VENDOR=Intel10_64lp -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DGGML_NATIVE=ON" go generate ./... && \
|
|
go build -ldflags="-s -w"
|
|
|
|
FROM debian:bookworm-slim
|
|
|
|
RUN apt update && apt install -y --no-install-recommends \
|
|
wget \
|
|
gnupg \
|
|
software-properties-common \
|
|
supervisor && \
|
|
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 -y --no-install-recommends intel-oneapi-runtime-libs && \
|
|
apt clean && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /app
|
|
|
|
COPY --from=build /app/supervisord.conf /app/supervisord.conf
|
|
COPY --from=build /app/ollama /app/ollama
|
|
COPY --from=build /app/run_model.sh /app/run_model.sh
|
|
COPY --from=build /app/serve.sh /app/serve.sh
|
|
|
|
ENV MODEL_NAME="llama"
|
|
ENV OLLAMA_HOST="0.0.0.0:8080"
|
|
|
|
EXPOSE 8080
|
|
|
|
CMD ["supervisord", "-c", "/app/supervisord.conf"] |