| 
									
										
										
										
											2023-09-27 01:38:32 +08:00
										 |  |  | #!/bin/sh
 | 
					
						
							| 
									
										
										
										
											2024-09-13 03:10:30 +08: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-23 03:20:12 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-27 01:38:32 +08:00
										 |  |  | set -eu | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-09-13 03:10:30 +08:00
										 |  |  | . $(dirname $0)/env.sh | 
					
						
							| 
									
										
										
										
											2023-09-23 03:20:12 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | mkdir -p dist | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-09-13 03:10:30 +08:00
										 |  |  | docker buildx build \
 | 
					
						
							|  |  |  |         --output type=local,dest=./dist/ \
 | 
					
						
							|  |  |  |         --platform=${PLATFORM} \
 | 
					
						
							|  |  |  |         ${OLLAMA_COMMON_BUILD_ARGS} \
 | 
					
						
							| 
									
										
										
										
											2025-01-30 07:03:38 +08:00
										 |  |  |         --target archive \
 | 
					
						
							| 
									
										
										
										
											2024-10-31 01:34:28 +08:00
										 |  |  |         -f Dockerfile \
 | 
					
						
							| 
									
										
										
										
											2024-01-22 03:37:11 +08:00
										 |  |  |         . | 
					
						
							| 
									
										
										
										
											2024-09-13 03:10:30 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-26 05: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-13 03:10:30 +08:00
										 |  |  | # buildx behavior changes for single vs. multiplatform | 
					
						
							| 
									
										
										
										
											2025-02-26 05: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-30 07:03:38 +08:00
										 |  |  | fi |