|
@@ -1,201 +1,161 @@
|
|
|
-ARG GOLANG_VERSION=1.22.8
|
|
|
-ARG CUDA_VERSION_11=11.3.1
|
|
|
-ARG CUDA_VERSION_12=12.4.0
|
|
|
-ARG ROCM_VERSION=6.1.2
|
|
|
-ARG JETPACK_6=r36.2.0
|
|
|
-ARG JETPACK_5=r35.4.1
|
|
|
-
|
|
|
-### To create a local image for building linux binaries on mac or windows with efficient incremental builds
|
|
|
-#
|
|
|
-# docker build --platform linux/amd64 -t builder-amd64 -f Dockerfile --target unified-builder-amd64 .
|
|
|
-# docker run --platform linux/amd64 --rm -it -v $(pwd):/go/src/github.com/ollama/ollama/ builder-amd64
|
|
|
-#
|
|
|
-### Then incremental builds will be much faster in this container
|
|
|
-#
|
|
|
-# make -j 10 dist
|
|
|
-#
|
|
|
-FROM --platform=linux/amd64 rocm/dev-centos-7:${ROCM_VERSION}-complete AS unified-builder-amd64
|
|
|
-ARG GOLANG_VERSION
|
|
|
-ARG CUDA_VERSION_11
|
|
|
-ARG CUDA_VERSION_12
|
|
|
-COPY ./scripts/rh_linux_deps.sh /
|
|
|
-ENV PATH /opt/rh/devtoolset-10/root/usr/bin:/usr/local/cuda/bin:$PATH
|
|
|
-ENV LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/cuda/lib64
|
|
|
-RUN GOLANG_VERSION=${GOLANG_VERSION} sh /rh_linux_deps.sh
|
|
|
-RUN yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo && \
|
|
|
- dnf clean all && \
|
|
|
- dnf install -y \
|
|
|
- zsh \
|
|
|
- cuda-toolkit-$(echo ${CUDA_VERSION_11} | cut -f1-2 -d. | sed -e "s/\./-/g") \
|
|
|
- cuda-toolkit-$(echo ${CUDA_VERSION_12} | cut -f1-2 -d. | sed -e "s/\./-/g")
|
|
|
-# TODO intel oneapi goes here...
|
|
|
-ENV GOARCH amd64
|
|
|
-ENV CGO_ENABLED 1
|
|
|
-WORKDIR /go/src/github.com/ollama/ollama/
|
|
|
-ENTRYPOINT [ "zsh" ]
|
|
|
-
|
|
|
-### To create a local image for building linux binaries on mac or linux/arm64 with efficient incremental builds
|
|
|
-# Note: this does not contain jetson variants
|
|
|
-#
|
|
|
-# docker build --platform linux/arm64 -t builder-arm64 -f Dockerfile --target unified-builder-arm64 .
|
|
|
-# docker run --platform linux/arm64 --rm -it -v $(pwd):/go/src/github.com/ollama/ollama/ builder-arm64
|
|
|
-#
|
|
|
-FROM --platform=linux/arm64 rockylinux:8 AS unified-builder-arm64
|
|
|
-ARG GOLANG_VERSION
|
|
|
-ARG CUDA_VERSION_11
|
|
|
-ARG CUDA_VERSION_12
|
|
|
-COPY ./scripts/rh_linux_deps.sh /
|
|
|
-RUN GOLANG_VERSION=${GOLANG_VERSION} sh /rh_linux_deps.sh
|
|
|
-RUN yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel8/sbsa/cuda-rhel8.repo && \
|
|
|
- dnf config-manager --set-enabled appstream && \
|
|
|
- dnf clean all && \
|
|
|
- dnf install -y \
|
|
|
- zsh \
|
|
|
- cuda-toolkit-$(echo ${CUDA_VERSION_11} | cut -f1-2 -d. | sed -e "s/\./-/g") \
|
|
|
- cuda-toolkit-$(echo ${CUDA_VERSION_12} | cut -f1-2 -d. | sed -e "s/\./-/g")
|
|
|
-ENV PATH /opt/rh/gcc-toolset-10/root/usr/bin:$PATH:/usr/local/cuda/bin
|
|
|
-ENV LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/cuda/lib64
|
|
|
-ENV LIBRARY_PATH=/usr/local/cuda/lib64/stubs:/opt/amdgpu/lib64
|
|
|
-ENV GOARCH arm64
|
|
|
-ENV CGO_ENABLED 1
|
|
|
-WORKDIR /go/src/github.com/ollama/ollama/
|
|
|
-ENTRYPOINT [ "zsh" ]
|
|
|
-
|
|
|
-FROM --platform=linux/amd64 unified-builder-amd64 AS build-amd64
|
|
|
-COPY . .
|
|
|
-ARG OLLAMA_SKIP_CUDA_GENERATE
|
|
|
-ARG OLLAMA_SKIP_ROCM_GENERATE
|
|
|
-ARG OLLAMA_FAST_BUILD
|
|
|
-ARG VERSION
|
|
|
-ARG CUSTOM_CPU_FLAGS
|
|
|
-RUN --mount=type=cache,target=/root/.ccache \
|
|
|
- if grep "^flags" /proc/cpuinfo|grep avx>/dev/null; then \
|
|
|
- make -j $(nproc) dist ; \
|
|
|
- else \
|
|
|
- make -j 5 dist ; \
|
|
|
- fi
|
|
|
-RUN cd dist/linux-$GOARCH && \
|
|
|
- tar -cf - . | pigz --best > ../ollama-linux-$GOARCH.tgz
|
|
|
-RUN if [ -z ${OLLAMA_SKIP_ROCM_GENERATE} ] ; then \
|
|
|
- cd dist/linux-$GOARCH-rocm && \
|
|
|
- tar -cf - . | pigz --best > ../ollama-linux-$GOARCH-rocm.tgz ;\
|
|
|
- fi
|
|
|
-
|
|
|
-# Jetsons need to be built in discrete stages
|
|
|
-FROM --platform=linux/arm64 nvcr.io/nvidia/l4t-jetpack:${JETPACK_5} AS runners-jetpack5-arm64
|
|
|
-ARG GOLANG_VERSION
|
|
|
-RUN apt-get update && apt-get install -y git curl ccache && \
|
|
|
- curl -s -L https://dl.google.com/go/go${GOLANG_VERSION}.linux-arm64.tar.gz | tar xz -C /usr/local && \
|
|
|
- ln -s /usr/local/go/bin/go /usr/local/bin/go && \
|
|
|
- ln -s /usr/local/go/bin/gofmt /usr/local/bin/gofmt && \
|
|
|
- apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
|
-WORKDIR /go/src/github.com/ollama/ollama/
|
|
|
-COPY . .
|
|
|
-ARG CGO_CFLAGS
|
|
|
-ENV GOARCH arm64
|
|
|
-ARG VERSION
|
|
|
-RUN --mount=type=cache,target=/root/.ccache \
|
|
|
- make -j 5 dist_cuda_v11 \
|
|
|
- CUDA_ARCHITECTURES="72;87" \
|
|
|
- GPU_RUNNER_VARIANT=_jetpack5 \
|
|
|
- DIST_LIB_DIR=/go/src/github.com/ollama/ollama/dist/linux-arm64-jetpack5/lib/ollama \
|
|
|
- DIST_GPU_RUNNER_DEPS_DIR=/go/src/github.com/ollama/ollama/dist/linux-arm64-jetpack5/lib/ollama/cuda_jetpack5
|
|
|
-
|
|
|
-FROM --platform=linux/arm64 nvcr.io/nvidia/l4t-jetpack:${JETPACK_6} AS runners-jetpack6-arm64
|
|
|
-ARG GOLANG_VERSION
|
|
|
-RUN apt-get update && apt-get install -y git curl ccache && \
|
|
|
- curl -s -L https://dl.google.com/go/go${GOLANG_VERSION}.linux-arm64.tar.gz | tar xz -C /usr/local && \
|
|
|
- ln -s /usr/local/go/bin/go /usr/local/bin/go && \
|
|
|
- ln -s /usr/local/go/bin/gofmt /usr/local/bin/gofmt && \
|
|
|
- apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
|
-WORKDIR /go/src/github.com/ollama/ollama/
|
|
|
-COPY . .
|
|
|
-ARG CGO_CFLAGS
|
|
|
-ENV GOARCH arm64
|
|
|
-ARG VERSION
|
|
|
+# vim: filetype=dockerfile
|
|
|
+
|
|
|
+ARG FLAVOR=${TARGETARCH}
|
|
|
+
|
|
|
+ARG ROCMVERSION=6.1.2
|
|
|
+ARG JETPACK5VERSION=r35.4.1
|
|
|
+ARG JETPACK6VERSION=r36.2.0
|
|
|
+ARG CMAKEVERSION=3.31.2
|
|
|
+
|
|
|
+FROM --platform=linux/amd64 rocm/dev-centos-7:${ROCMVERSION}-complete AS base-amd64
|
|
|
+RUN sed -i -e 's/mirror.centos.org/vault.centos.org/g' -e 's/^#.*baseurl=http/baseurl=http/g' -e 's/^mirrorlist=http/#mirrorlist=http/g' /etc/yum.repos.d/*.repo \
|
|
|
+ && yum install -y yum-utils devtoolset-10-gcc devtoolset-10-gcc-c++ \
|
|
|
+ && yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo \
|
|
|
+ && curl -s -L https://github.com/ccache/ccache/releases/download/v4.10.2/ccache-4.10.2-linux-x86_64.tar.xz | tar -Jx -C /usr/local/bin --strip-components 1
|
|
|
+ENV PATH=/opt/rh/devtoolset-10/root/usr/bin:/opt/rh/devtoolset-11/root/usr/bin:$PATH
|
|
|
+
|
|
|
+FROM --platform=linux/arm64 rockylinux:8 AS base-arm64
|
|
|
+# install epel-release for ccache
|
|
|
+RUN yum install -y yum-utils epel-release \
|
|
|
+ && yum install -y clang ccache \
|
|
|
+ && yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel8/sbsa/cuda-rhel8.repo
|
|
|
+ENV CC=clang CXX=clang++
|
|
|
+
|
|
|
+FROM base-${TARGETARCH} AS base
|
|
|
+ARG CMAKEVERSION
|
|
|
+RUN curl -fsSL https://github.com/Kitware/CMake/releases/download/v${CMAKEVERSION}/cmake-${CMAKEVERSION}-linux-$(uname -m).tar.gz | tar xz -C /usr/local --strip-components 1
|
|
|
+COPY CMakeLists.txt CMakePresets.json .
|
|
|
+COPY ml/backend/ggml/ggml ml/backend/ggml/ggml
|
|
|
+ENV LDFLAGS=-s
|
|
|
+
|
|
|
+FROM base AS cpu
|
|
|
+# amd64 uses gcc which requires devtoolset-11 for AVX extensions while arm64 uses clang
|
|
|
+RUN if [ "$(uname -m)" = "x86_64" ]; then yum install -y devtoolset-11-gcc devtoolset-11-gcc-c++; fi
|
|
|
+ENV PATH=/opt/rh/devtoolset-11/root/usr/bin:$PATH
|
|
|
RUN --mount=type=cache,target=/root/.ccache \
|
|
|
- make -j 5 dist_cuda_v12 \
|
|
|
- CUDA_ARCHITECTURES="87" \
|
|
|
- GPU_RUNNER_VARIANT=_jetpack6 \
|
|
|
- DIST_LIB_DIR=/go/src/github.com/ollama/ollama/dist/linux-arm64-jetpack6/lib/ollama \
|
|
|
- DIST_GPU_RUNNER_DEPS_DIR=/go/src/github.com/ollama/ollama/dist/linux-arm64-jetpack6/lib/ollama/cuda_jetpack6
|
|
|
+ cmake --preset 'Default' && cmake --build --parallel --preset 'Default'
|
|
|
|
|
|
-FROM --platform=linux/arm64 unified-builder-arm64 AS build-arm64
|
|
|
-COPY . .
|
|
|
-ARG OLLAMA_SKIP_CUDA_GENERATE
|
|
|
-ARG OLLAMA_FAST_BUILD
|
|
|
-ARG VERSION
|
|
|
+FROM base AS cuda-11
|
|
|
+ARG CUDA11VERSION=11.3
|
|
|
+RUN yum install -y cuda-toolkit-${CUDA11VERSION//./-}
|
|
|
+ENV PATH=/usr/local/cuda-11/bin:$PATH
|
|
|
RUN --mount=type=cache,target=/root/.ccache \
|
|
|
- make -j 5 dist
|
|
|
-COPY --from=runners-jetpack5-arm64 /go/src/github.com/ollama/ollama/dist/ dist/
|
|
|
-COPY --from=runners-jetpack6-arm64 /go/src/github.com/ollama/ollama/dist/ dist/
|
|
|
-RUN cd dist/linux-$GOARCH && \
|
|
|
- tar -cf - . | pigz --best > ../ollama-linux-$GOARCH.tgz
|
|
|
-RUN cd dist/linux-$GOARCH-jetpack5 && \
|
|
|
- tar -cf - . | pigz --best > ../ollama-linux-$GOARCH-jetpack5.tgz
|
|
|
-RUN cd dist/linux-$GOARCH-jetpack6 && \
|
|
|
- tar -cf - . | pigz --best > ../ollama-linux-$GOARCH-jetpack6.tgz
|
|
|
-
|
|
|
-FROM --platform=linux/amd64 scratch AS dist-amd64
|
|
|
-COPY --from=build-amd64 /go/src/github.com/ollama/ollama/dist/ollama-linux-*.tgz /
|
|
|
-FROM --platform=linux/arm64 scratch AS dist-arm64
|
|
|
-COPY --from=build-arm64 /go/src/github.com/ollama/ollama/dist/ollama-linux-*.tgz /
|
|
|
-FROM dist-$TARGETARCH AS dist
|
|
|
-
|
|
|
-
|
|
|
-# For amd64 container images, filter out cuda/rocm to minimize size
|
|
|
-FROM build-amd64 AS runners-cuda-amd64
|
|
|
-RUN rm -rf \
|
|
|
- ./dist/linux-amd64/lib/ollama/libggml_hipblas.so \
|
|
|
- ./dist/linux-amd64/lib/ollama/runners/rocm*
|
|
|
-
|
|
|
-FROM build-amd64 AS runners-rocm-amd64
|
|
|
-RUN rm -rf \
|
|
|
- ./dist/linux-amd64/lib/ollama/libggml_cuda*.so \
|
|
|
- ./dist/linux-amd64/lib/ollama/libcu*.so* \
|
|
|
- ./dist/linux-amd64/lib/ollama/runners/cuda*
|
|
|
-
|
|
|
-FROM --platform=linux/amd64 ubuntu:22.04 AS runtime-amd64
|
|
|
-RUN apt-get update && \
|
|
|
- apt-get install -y ca-certificates && \
|
|
|
- apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
|
-COPY --from=build-amd64 /go/src/github.com/ollama/ollama/dist/linux-amd64/bin/ /bin/
|
|
|
-COPY --from=runners-cuda-amd64 /go/src/github.com/ollama/ollama/dist/linux-amd64/lib/ /lib/
|
|
|
-
|
|
|
-FROM --platform=linux/arm64 ubuntu:22.04 AS runtime-arm64
|
|
|
-RUN apt-get update && \
|
|
|
- apt-get install -y ca-certificates && \
|
|
|
- apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
|
-COPY --from=build-arm64 /go/src/github.com/ollama/ollama/dist/linux-arm64/bin/ /bin/
|
|
|
-COPY --from=build-arm64 /go/src/github.com/ollama/ollama/dist/linux-arm64/lib/ /lib/
|
|
|
-COPY --from=runners-jetpack5-arm64 /go/src/github.com/ollama/ollama/dist/linux-arm64-jetpack5/lib/ /lib/
|
|
|
-COPY --from=runners-jetpack6-arm64 /go/src/github.com/ollama/ollama/dist/linux-arm64-jetpack6/lib/ /lib/
|
|
|
-
|
|
|
-
|
|
|
-# ROCm libraries larger so we keep it distinct from the CPU/CUDA image
|
|
|
-FROM --platform=linux/amd64 ubuntu:22.04 AS runtime-rocm
|
|
|
-# Frontload the rocm libraries which are large, and rarely change to increase chance of a common layer
|
|
|
-# across releases
|
|
|
-COPY --from=build-amd64 /go/src/github.com/ollama/ollama/dist/linux-amd64-rocm/lib/ /lib/
|
|
|
-RUN apt-get update && \
|
|
|
- apt-get install -y ca-certificates && \
|
|
|
- apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
|
-COPY --from=build-amd64 /go/src/github.com/ollama/ollama/dist/linux-amd64/bin/ /bin/
|
|
|
-COPY --from=runners-rocm-amd64 /go/src/github.com/ollama/ollama/dist/linux-amd64/lib/ /lib/
|
|
|
+ cmake --preset 'CUDA 11' && cmake --build --parallel --preset 'CUDA 11'
|
|
|
|
|
|
-EXPOSE 11434
|
|
|
-ENV OLLAMA_HOST 0.0.0.0
|
|
|
+FROM base AS cuda-12
|
|
|
+ARG CUDA12VERSION=12.4
|
|
|
+RUN yum install -y cuda-toolkit-${CUDA12VERSION//./-}
|
|
|
+ENV PATH=/usr/local/cuda-12/bin:$PATH
|
|
|
+RUN --mount=type=cache,target=/root/.ccache \
|
|
|
+ cmake --preset 'CUDA 12' && cmake --build --parallel --preset 'CUDA 12'
|
|
|
|
|
|
-ENTRYPOINT ["/bin/ollama"]
|
|
|
-CMD ["serve"]
|
|
|
+FROM base AS rocm-6
|
|
|
+RUN --mount=type=cache,target=/root/.ccache \
|
|
|
+ cmake --preset 'ROCm 6' && cmake --build --parallel --preset 'ROCm 6'
|
|
|
+
|
|
|
+FROM --platform=linux/arm64 nvcr.io/nvidia/l4t-jetpack:${JETPACK5VERSION} AS jetpack-5
|
|
|
+ARG CMAKEVERSION
|
|
|
+RUN apt-get update && apt-get install -y curl ccache \
|
|
|
+ && curl -fsSL https://github.com/Kitware/CMake/releases/download/v${CMAKEVERSION}/cmake-${CMAKEVERSION}-linux-$(uname -m).tar.gz | tar xz -C /usr/local --strip-components 1
|
|
|
+COPY CMakeLists.txt CMakePresets.json .
|
|
|
+COPY ml/backend/ggml/ggml ml/backend/ggml/ggml
|
|
|
+RUN --mount=type=cache,target=/root/.ccache \
|
|
|
+ cmake --preset 'JetPack 5' && cmake --build --parallel --preset 'JetPack 5'
|
|
|
+
|
|
|
+FROM --platform=linux/arm64 nvcr.io/nvidia/l4t-jetpack:${JETPACK6VERSION} AS jetpack-6
|
|
|
+ARG CMAKEVERSION
|
|
|
+RUN apt-get update && apt-get install -y curl ccache \
|
|
|
+ && curl -fsSL https://github.com/Kitware/CMake/releases/download/v${CMAKEVERSION}/cmake-${CMAKEVERSION}-linux-$(uname -m).tar.gz | tar xz -C /usr/local --strip-components 1
|
|
|
+COPY CMakeLists.txt CMakePresets.json .
|
|
|
+COPY ml/backend/ggml/ggml ml/backend/ggml/ggml
|
|
|
+RUN --mount=type=cache,target=/root/.ccache \
|
|
|
+ cmake --preset 'JetPack 6' && cmake --build --parallel --preset 'JetPack 6'
|
|
|
|
|
|
-FROM runtime-$TARGETARCH
|
|
|
-EXPOSE 11434
|
|
|
-ENV OLLAMA_HOST 0.0.0.0
|
|
|
+FROM base AS build
|
|
|
+ARG GOVERSION=1.23.4
|
|
|
+RUN curl -fsSL https://golang.org/dl/go${GOVERSION}.linux-$(case $(uname -m) in x86_64) echo amd64 ;; aarch64) echo arm64 ;; esac).tar.gz | tar xz -C /usr/local
|
|
|
+ENV PATH=/usr/local/go/bin:$PATH
|
|
|
+WORKDIR /go/src/github.com/ollama/ollama
|
|
|
+COPY . .
|
|
|
+ARG GOFLAGS="'-ldflags=-w -s'"
|
|
|
+ENV CGO_ENABLED=1
|
|
|
+RUN --mount=type=cache,target=/root/.cache/go-build \
|
|
|
+ go build -trimpath -buildmode=pie -o /bin/ollama .
|
|
|
+
|
|
|
+FROM --platform=linux/amd64 scratch AS amd64
|
|
|
+COPY --from=cuda-11 --chmod=644 \
|
|
|
+ dist/build/lib/libggml-cuda.so \
|
|
|
+ /usr/local/cuda/lib64/libcublas.so.11 \
|
|
|
+ /usr/local/cuda/lib64/libcublasLt.so.11 \
|
|
|
+ /usr/local/cuda/lib64/libcudart.so.11.0 \
|
|
|
+ /lib/ollama/cuda_v11/
|
|
|
+COPY --from=cuda-12 --chmod=644 \
|
|
|
+ dist/build/lib/libggml-cuda.so \
|
|
|
+ /usr/local/cuda/lib64/libcublas.so.12 \
|
|
|
+ /usr/local/cuda/lib64/libcublasLt.so.12 \
|
|
|
+ /usr/local/cuda/lib64/libcudart.so.12 \
|
|
|
+ /lib/ollama/cuda_v12/
|
|
|
+
|
|
|
+FROM --platform=linux/arm64 scratch AS arm64
|
|
|
+COPY --from=cuda-11 --chmod=644 \
|
|
|
+ dist/build/lib/libggml-cuda.so \
|
|
|
+ /usr/local/cuda/lib64/libcublas.so.11 \
|
|
|
+ /usr/local/cuda/lib64/libcublasLt.so.11 \
|
|
|
+ /usr/local/cuda/lib64/libcudart.so.11.0 \
|
|
|
+ /lib/ollama/cuda_v11/
|
|
|
+COPY --from=cuda-12 --chmod=644 \
|
|
|
+ dist/build/lib/libggml-cuda.so \
|
|
|
+ /usr/local/cuda/lib64/libcublas.so.12 \
|
|
|
+ /usr/local/cuda/lib64/libcublasLt.so.12 \
|
|
|
+ /usr/local/cuda/lib64/libcudart.so.12 \
|
|
|
+ /lib/ollama/cuda_v12/
|
|
|
+COPY --from=jetpack-5 --chmod=644 \
|
|
|
+ dist/build/lib/libggml-cuda.so \
|
|
|
+ /usr/local/cuda/lib64/libcublas.so.11 \
|
|
|
+ /usr/local/cuda/lib64/libcublasLt.so.11 \
|
|
|
+ /usr/local/cuda/lib64/libcudart.so.11.0 \
|
|
|
+ /lib/ollama/cuda_jetpack5/
|
|
|
+COPY --from=jetpack-6 --chmod=644 \
|
|
|
+ dist/build/lib/libggml-cuda.so \
|
|
|
+ /usr/local/cuda/lib64/libcublas.so.12 \
|
|
|
+ /usr/local/cuda/lib64/libcublasLt.so.12 \
|
|
|
+ /usr/local/cuda/lib64/libcudart.so.12 \
|
|
|
+ /lib/ollama/cuda_jetpack6/
|
|
|
+
|
|
|
+FROM --platform=linux/arm64 scratch AS rocm
|
|
|
+COPY --from=rocm-6 --chmod=644 \
|
|
|
+ dist/build/lib/libggml-hip.so \
|
|
|
+ /opt/rocm/lib/libamdhip64.so.6 \
|
|
|
+ /opt/rocm/lib/libhipblas.so.2 \
|
|
|
+ /opt/rocm/lib/librocblas.so.4 \
|
|
|
+ /opt/rocm/lib/libamd_comgr.so.2 \
|
|
|
+ /opt/rocm/lib/libhsa-runtime64.so.1 \
|
|
|
+ /opt/rocm/lib/librocprofiler-register.so.0 \
|
|
|
+ /opt/amdgpu/lib64/libdrm_amdgpu.so.1 \
|
|
|
+ /opt/amdgpu/lib64/libdrm.so.2 \
|
|
|
+ /usr/lib64/libnuma.so.1 \
|
|
|
+ /lib/ollama/rocm/
|
|
|
+COPY --from=rocm-6 /opt/rocm/lib/rocblas/ /lib/ollama/rocm/rocblas/
|
|
|
+
|
|
|
+FROM ${FLAVOR} AS archive
|
|
|
+COPY --from=cpu --chmod=644 \
|
|
|
+ dist/build/lib/libggml-base.so \
|
|
|
+ dist/build/lib/libggml-cpu-*.so \
|
|
|
+ /lib/ollama/
|
|
|
+COPY --from=build /bin/ollama /bin/ollama
|
|
|
+
|
|
|
+FROM ubuntu:20.04
|
|
|
+RUN apt-get update \
|
|
|
+ && apt-get install -y ca-certificates \
|
|
|
+ && apt-get clean \
|
|
|
+ && rm -rf /var/lib/apt/lists/*
|
|
|
+COPY --from=archive /bin/ /usr/bin/
|
|
|
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
|
|
-ENV LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64
|
|
|
+COPY --from=archive /lib/ollama/ /usr/lib/ollama/
|
|
|
+ENV LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64:/usr/lib/ollama
|
|
|
ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility
|
|
|
ENV NVIDIA_VISIBLE_DEVICES=all
|
|
|
-
|
|
|
+ENV OLLAMA_HOST=0.0.0.0:11434
|
|
|
+EXPOSE 11434
|
|
|
ENTRYPOINT ["/bin/ollama"]
|
|
|
CMD ["serve"]
|