# Stage 1: Build Ollama with Vulkan support 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 . # Configure CMake explicitly for Vulkan backend compilation RUN cmake -B build . -DOLLAMA_LLAMA_BACKENDS="vulkan" RUN cmake --build build --parallel $(nproc) # Build the final Go binary RUN go build -o ollama . # 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 the compiled binary and backend libraries from builder stage COPY --from=builder /app/ollama /usr/local/bin/ollama COPY --from=builder /app/build/lib/ollama /usr/local/lib/ollama EXPOSE 11434 ENV OLLAMA_HOST=0.0.0.0:11434 ENV OLLAMA_MODELS=/root/.ollama/models ENTRYPOINT ["ollama", "serve"]