diff --git a/.devops/s390x.Dockerfile b/.devops/s390x.Dockerfile new file mode 100644 index 0000000000..e2aefa8707 --- /dev/null +++ b/.devops/s390x.Dockerfile @@ -0,0 +1,36 @@ +# vim: filetype=dockerfile + +ARG GCC_VERSION=15.2.0 +ARG UBUNTU_VERSION=24.10 +ARG SUPPORT_ZDNN=OFF + +FROM --platform=linux/s390x gcc:${GCC_VERSION} AS build +RUN apt update -y \ + && apt upgrade -y \ + && apt install -y --no-install-recommends cmake \ + && apt install -y --no-install-recommends libopenblas-openmp-dev \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /app + +COPY . . + +RUN --mount=type=cache,target=/root/.ccache \ + cmake -S . -B build -G Ninja \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=OFF \ + -DGGML_BLAS=ON \ + -DGGML_BLAS_VENDOR=OpenBLAS \ + -DGGML_ZDNN=$SUPPORT_ZDNN \ + && cmake --build build --config Release -j $(nproc) + +RUN cmake --install build --prefix /opt/llama.cpp + +FROM --platform=linux/s390x scratch AS llama-server + +COPY --from=build /opt/llama.cpp/bin/llama-server / + +WORKDIR /models +EXPOSE 8080 + +ENTRYPOINT ["/llama-server"]