2023-12-18 20:05:59 +00:00
|
|
|
ARG GOLANG_VERSION=1.21.3
|
2024-01-04 21:25:38 +00:00
|
|
|
ARG CMAKE_VERSION=3.22.1
|
|
|
|
ARG CUDA_VERSION=11.3.1
|
|
|
|
|
|
|
|
FROM --platform=linux/amd64 nvidia/cuda:$CUDA_VERSION-devel-centos7 AS cuda-build-amd64
|
2023-11-29 19:00:37 +00:00
|
|
|
|
2024-01-04 21:25:38 +00:00
|
|
|
ARG CMAKE_VERSION
|
2023-11-29 19:00:37 +00:00
|
|
|
|
2024-01-04 21:25:38 +00:00
|
|
|
RUN yum install -y https://repo.ius.io/ius-release-el7.rpm centos-release-scl \
|
|
|
|
&& yum update -y \
|
|
|
|
&& yum install -y devtoolset-10-gcc devtoolset-10-gcc-c++ git236
|
|
|
|
ENV PATH /opt/rh/devtoolset-10/root/usr/bin:$PATH
|
|
|
|
|
|
|
|
ADD https://github.com/Kitware/CMake/releases/download/v$CMAKE_VERSION/cmake-$CMAKE_VERSION-linux-x86_64.tar.gz /tmp/cmake-$CMAKE_VERSION.tar.gz
|
|
|
|
RUN tar -zx -C /usr --strip-components 1 </tmp/cmake-$CMAKE_VERSION.tar.gz
|
2023-09-22 19:20:12 +00:00
|
|
|
|
|
|
|
WORKDIR /go/src/github.com/jmorganca/ollama
|
2024-01-05 20:13:08 +00:00
|
|
|
COPY .git .git
|
|
|
|
COPY .gitmodules .gitmodules
|
|
|
|
COPY llm llm
|
2023-10-03 14:05:09 +00:00
|
|
|
|
2024-01-05 20:13:08 +00:00
|
|
|
WORKDIR /go/src/github.com/jmorganca/ollama/llm/generate
|
2024-01-04 21:25:38 +00:00
|
|
|
RUN sh gen_linux.sh
|
|
|
|
|
|
|
|
FROM --platform=linux/arm64 nvidia/cuda:$CUDA_VERSION-devel-rockylinux8 AS cuda-build-arm64
|
|
|
|
|
|
|
|
ARG CMAKE_VERSION
|
|
|
|
|
|
|
|
RUN dnf install -y git cmake
|
|
|
|
|
|
|
|
WORKDIR /go/src/github.com/jmorganca/ollama
|
2024-01-05 20:13:08 +00:00
|
|
|
COPY .git .git
|
|
|
|
COPY .gitmodules .gitmodules
|
|
|
|
COPY llm llm
|
2024-01-04 21:25:38 +00:00
|
|
|
|
2024-01-05 20:13:08 +00:00
|
|
|
WORKDIR /go/src/github.com/jmorganca/ollama/llm/generate
|
2024-01-04 21:25:38 +00:00
|
|
|
RUN sh gen_linux.sh
|
|
|
|
|
2024-01-05 20:13:08 +00:00
|
|
|
FROM --platform=linux/amd64 rocm/dev-centos-7:5.7.1-complete AS rocm-5-build-amd64
|
2024-01-04 21:25:38 +00:00
|
|
|
ARG CMAKE_VERSION
|
|
|
|
RUN yum install -y https://repo.ius.io/ius-release-el7.rpm centos-release-scl \
|
|
|
|
&& yum update -y \
|
|
|
|
&& yum remove -y git \
|
|
|
|
&& yum install -y devtoolset-10-gcc devtoolset-10-gcc-c++ git236
|
|
|
|
ENV PATH /opt/rh/devtoolset-10/root/usr/bin:$PATH
|
|
|
|
ENV LIBRARY_PATH /opt/amdgpu/lib64
|
|
|
|
ADD https://github.com/Kitware/CMake/releases/download/v$CMAKE_VERSION/cmake-$CMAKE_VERSION-linux-x86_64.tar.gz /tmp/cmake-$CMAKE_VERSION.tar.gz
|
|
|
|
RUN tar -zx -C /usr --strip-components 1 </tmp/cmake-$CMAKE_VERSION.tar.gz
|
|
|
|
WORKDIR /go/src/github.com/jmorganca/ollama
|
2024-01-05 20:13:08 +00:00
|
|
|
COPY .git .git
|
|
|
|
COPY .gitmodules .gitmodules
|
|
|
|
COPY llm llm
|
|
|
|
WORKDIR /go/src/github.com/jmorganca/ollama/llm/generate
|
|
|
|
RUN OLLAMA_SKIP_CPU_GENERATE=1 sh gen_linux.sh
|
2024-01-04 21:25:38 +00:00
|
|
|
|
2024-01-05 20:13:08 +00:00
|
|
|
FROM --platform=linux/amd64 rocm/dev-centos-7:6.0-complete AS rocm-6-build-amd64
|
|
|
|
ARG CMAKE_VERSION
|
|
|
|
RUN yum install -y https://repo.ius.io/ius-release-el7.rpm centos-release-scl \
|
|
|
|
&& yum update -y \
|
|
|
|
&& yum remove -y git \
|
|
|
|
&& yum install -y devtoolset-10-gcc devtoolset-10-gcc-c++ git236
|
|
|
|
ENV PATH /opt/rh/devtoolset-10/root/usr/bin:$PATH
|
|
|
|
ENV LIBRARY_PATH /opt/amdgpu/lib64
|
|
|
|
ADD https://github.com/Kitware/CMake/releases/download/v$CMAKE_VERSION/cmake-$CMAKE_VERSION-linux-x86_64.tar.gz /tmp/cmake-$CMAKE_VERSION.tar.gz
|
|
|
|
RUN tar -zx -C /usr --strip-components 1 </tmp/cmake-$CMAKE_VERSION.tar.gz
|
|
|
|
WORKDIR /go/src/github.com/jmorganca/ollama
|
|
|
|
COPY .git .git
|
|
|
|
COPY .gitmodules .gitmodules
|
|
|
|
COPY llm llm
|
|
|
|
WORKDIR /go/src/github.com/jmorganca/ollama/llm/generate
|
|
|
|
RUN OLLAMA_SKIP_CPU_GENERATE=1 sh gen_linux.sh
|
2024-01-04 21:25:38 +00:00
|
|
|
|
|
|
|
FROM --platform=linux/amd64 centos:7 AS build-amd64
|
|
|
|
ENV CGO_ENABLED 1
|
|
|
|
|
|
|
|
ARG GOLANG_VERSION
|
|
|
|
ARG GOFLAGS
|
|
|
|
ARG CGO_FLAGS
|
|
|
|
|
|
|
|
RUN yum install -y centos-release-scl \
|
|
|
|
&& yum update -y \
|
|
|
|
&& yum install -y devtoolset-10-gcc devtoolset-10-gcc-c++
|
|
|
|
ENV PATH /opt/rh/devtoolset-10/root/usr/bin:$PATH
|
|
|
|
|
|
|
|
ADD https://dl.google.com/go/go$GOLANG_VERSION.linux-amd64.tar.gz /tmp/go-$GOLANG_VERSION.tar.gz
|
|
|
|
RUN mkdir -p /usr/local && tar xz -C /usr/local </tmp/go-$GOLANG_VERSION.tar.gz
|
|
|
|
ENV PATH /usr/local/go/bin:$PATH
|
|
|
|
|
|
|
|
WORKDIR /go/src/github.com/jmorganca/ollama
|
|
|
|
COPY . .
|
2024-01-05 20:13:08 +00:00
|
|
|
COPY --from=cuda-build-amd64 /go/src/github.com/jmorganca/ollama/llm/llama.cpp/build/linux/ llm/llama.cpp/build/linux/
|
|
|
|
COPY --from=rocm-5-build-amd64 /go/src/github.com/jmorganca/ollama/llm/llama.cpp/build/linux/ llm/llama.cpp/build/linux/
|
|
|
|
COPY --from=rocm-6-build-amd64 /go/src/github.com/jmorganca/ollama/llm/llama.cpp/build/linux/ llm/llama.cpp/build/linux/
|
2024-01-04 21:25:38 +00:00
|
|
|
RUN go build .
|
|
|
|
|
|
|
|
FROM --platform=linux/arm64 centos:7 AS build-arm64
|
|
|
|
ENV CGO_ENABLED 1
|
|
|
|
|
|
|
|
ARG GOLANG_VERSION
|
|
|
|
ARG GOFLAGS
|
|
|
|
ARG CGO_FLAGS
|
|
|
|
|
|
|
|
RUN yum install -y centos-release-scl \
|
|
|
|
&& yum update -y \
|
|
|
|
&& yum install -y devtoolset-10-gcc devtoolset-10-gcc-c++
|
|
|
|
ENV PATH /opt/rh/devtoolset-10/root/usr/bin:$PATH
|
|
|
|
|
|
|
|
ADD https://dl.google.com/go/go$GOLANG_VERSION.linux-arm64.tar.gz /tmp/go-$GOLANG_VERSION.tar.gz
|
|
|
|
RUN mkdir -p /usr/local && tar xz -C /usr/local </tmp/go-$GOLANG_VERSION.tar.gz
|
|
|
|
ENV PATH /usr/local/go/bin:$PATH
|
|
|
|
|
|
|
|
WORKDIR /go/src/github.com/jmorganca/ollama
|
|
|
|
COPY . .
|
2024-01-05 20:13:08 +00:00
|
|
|
COPY --from=cuda-build-arm64 /go/src/github.com/jmorganca/ollama/llm/llama.cpp/build/linux/ llm/llama.cpp/build/linux/
|
2024-01-04 21:25:38 +00:00
|
|
|
RUN go build .
|
2023-09-26 17:38:32 +00:00
|
|
|
|
2024-01-04 21:25:38 +00:00
|
|
|
FROM build-$TARGETARCH
|