2023-09-26 10:38:32 -07:00
|
|
|
#!/bin/sh
|
2024-09-12 12:10:30 -07:00
|
|
|
#
|
|
|
|
# Mac ARM users, rosetta can be flaky, so to use a remote x86 builder
|
|
|
|
#
|
|
|
|
# docker context create amd64 --docker host=ssh://mybuildhost
|
|
|
|
# docker buildx create --name mybuilder amd64 --platform linux/amd64
|
|
|
|
# docker buildx create --name mybuilder --append desktop-linux --platform linux/arm64
|
|
|
|
# docker buildx use mybuilder
|
|
|
|
|
2023-09-22 15:20:12 -04:00
|
|
|
|
2023-09-26 10:38:32 -07:00
|
|
|
set -eu
|
|
|
|
|
2024-09-12 12:10:30 -07:00
|
|
|
. $(dirname $0)/env.sh
|
2023-09-22 15:20:12 -04:00
|
|
|
|
|
|
|
mkdir -p dist
|
|
|
|
|
2024-09-12 12:10:30 -07:00
|
|
|
docker buildx build \
|
|
|
|
--output type=local,dest=./dist/ \
|
|
|
|
--platform=${PLATFORM} \
|
|
|
|
${OLLAMA_COMMON_BUILD_ARGS} \
|
2025-01-29 15:03:38 -08:00
|
|
|
--target archive \
|
2024-10-30 10:34:28 -07:00
|
|
|
-f Dockerfile \
|
2024-01-21 11:37:11 -08:00
|
|
|
.
|
2024-09-12 12:10:30 -07:00
|
|
|
|
2025-02-25 13:47:36 -08:00
|
|
|
if echo $PLATFORM | grep "amd64" > /dev/null; then
|
|
|
|
outDir="./dist"
|
|
|
|
if echo $PLATFORM | grep "," > /dev/null ; then
|
|
|
|
outDir="./dist/linux_amd64"
|
|
|
|
fi
|
|
|
|
docker buildx build \
|
|
|
|
--output type=local,dest=${outDir} \
|
|
|
|
--platform=linux/amd64 \
|
|
|
|
${OLLAMA_COMMON_BUILD_ARGS} \
|
|
|
|
--build-arg FLAVOR=rocm \
|
|
|
|
--target archive \
|
|
|
|
-f Dockerfile \
|
|
|
|
.
|
|
|
|
fi
|
|
|
|
|
2024-09-12 12:10:30 -07:00
|
|
|
# buildx behavior changes for single vs. multiplatform
|
2025-02-25 13:47:36 -08:00
|
|
|
echo "Compressing linux tar bundles..."
|
|
|
|
if echo $PLATFORM | grep "," > /dev/null ; then
|
|
|
|
tar c -C ./dist/linux_arm64 --exclude cuda_jetpack5 --exclude cuda_jetpack6 . | pigz -9vc >./dist/ollama-linux-arm64.tgz
|
|
|
|
tar c -C ./dist/linux_arm64 ./lib/ollama/cuda_jetpack5 | pigz -9vc >./dist/ollama-linux-arm64-jetpack5.tgz
|
|
|
|
tar c -C ./dist/linux_arm64 ./lib/ollama/cuda_jetpack6 | pigz -9vc >./dist/ollama-linux-arm64-jetpack6.tgz
|
|
|
|
tar c -C ./dist/linux_amd64 --exclude rocm . | pigz -9vc >./dist/ollama-linux-amd64.tgz
|
|
|
|
tar c -C ./dist/linux_amd64 ./lib/ollama/rocm | pigz -9vc >./dist/ollama-linux-amd64-rocm.tgz
|
|
|
|
elif echo $PLATFORM | grep "arm64" > /dev/null ; then
|
|
|
|
tar c -C ./dist/ --exclude cuda_jetpack5 --exclude cuda_jetpack6 bin lib | pigz -9vc >./dist/ollama-linux-arm64.tgz
|
|
|
|
tar c -C ./dist/ ./lib/ollama/cuda_jetpack5 | pigz -9vc >./dist/ollama-linux-arm64-jetpack5.tgz
|
|
|
|
tar c -C ./dist/ ./lib/ollama/cuda_jetpack6 | pigz -9vc >./dist/ollama-linux-arm64-jetpack6.tgz
|
|
|
|
elif echo $PLATFORM | grep "amd64" > /dev/null ; then
|
|
|
|
tar c -C ./dist/ --exclude rocm bin lib | pigz -9vc >./dist/ollama-linux-amd64.tgz
|
|
|
|
tar c -C ./dist/ ./lib/ollama/rocm | pigz -9vc >./dist/ollama-linux-amd64-rocm.tgz
|
2025-01-29 15:03:38 -08:00
|
|
|
fi
|