build_linux.sh 1.2 KB

123456789101112131415161718192021222324252627282930
  1. #!/bin/sh
  2. set -eu
  3. export VERSION=${VERSION:-$(git describe --tags --first-parent --abbrev=7 --long --dirty --always | sed -e "s/^v//g")}
  4. export GOFLAGS="'-ldflags=-w -s \"-X=github.com/ollama/ollama/version.Version=$VERSION\" \"-X=github.com/ollama/ollama/server.mode=release\"'"
  5. GZIP=$(which pigz 2>/dev/null || echo "gzip")
  6. BUILD_ARCH=${BUILD_ARCH:-"amd64 arm64"}
  7. export AMDGPU_TARGETS=${AMDGPU_TARGETS:=""}
  8. mkdir -p dist
  9. for TARGETARCH in ${BUILD_ARCH}; do
  10. docker build \
  11. --platform=linux/$TARGETARCH \
  12. --build-arg=GOFLAGS \
  13. --build-arg=CGO_CFLAGS \
  14. --build-arg=OLLAMA_CUSTOM_CPU_DEFS \
  15. --build-arg=AMDGPU_TARGETS \
  16. --target build-$TARGETARCH \
  17. -f Dockerfile \
  18. -t builder:$TARGETARCH \
  19. .
  20. docker create --platform linux/$TARGETARCH --name builder-$TARGETARCH builder:$TARGETARCH
  21. docker cp builder-$TARGETARCH:/go/src/github.com/ollama/ollama/dist/linux-$TARGETARCH ./dist
  22. docker rm builder-$TARGETARCH
  23. echo "Compressing final linux bundle..."
  24. rm -f ./dist/ollama-linux-$TARGETARCH.tgz
  25. (cd dist/linux-$TARGETARCH && tar cf - . | ${GZIP} --best > ../ollama-linux-$TARGETARCH.tgz )
  26. done