# Stage 1: Build Ollama with Vulkan support for ARM64 FROM ubuntu:24.04 AS builder ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y \ build-essential \ cmake \ git \ curl \ golang-go \ libvulkan-dev \ vulkan-tools \ && rm -rf /var/lib/apt/lists/* WORKDIR /app RUN git clone --recursive https://github.com/ollama/ollama.git . # Build Ollama with Vulkan support enabled ENV OLLAMA_SET_VULKAN=1 RUN go generate ./... && \ go build -tags vulkan . # Stage 2: Minimal Runtime Image FROM ubuntu:24.04 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y \ libvulkan1 \ mesa-vulkan-drivers \ vulkan-tools \ ca-certificates \ && rm -rf /var/lib/apt/lists/* # Copy compiled binaries from builder stage COPY --from=builder /app/ollama /usr/local/bin/ollama COPY --from=builder /app/dist /usr/local/bin/dist EXPOSE 11434 ENV OLLAMA_HOST=0.0.0.0:11434 ENV OLLAMA_MODELS=/root/.ollama/models ENTRYPOINT ["ollama", "serve"]