/ .devops / llama-server-vulkan.Dockerfile
llama-server-vulkan.Dockerfile
 1  ARG UBUNTU_VERSION=jammy
 2  
 3  FROM ubuntu:$UBUNTU_VERSION AS build
 4  
 5  # Install build tools
 6  RUN apt update && apt install -y git build-essential cmake wget
 7  
 8  # Install Vulkan SDK and cURL
 9  RUN wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | apt-key add - && \
10      wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list https://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list && \
11      apt update -y && \
12      apt-get install -y vulkan-sdk libcurl4-openssl-dev curl
13  
14  # Build it
15  WORKDIR /app
16  COPY . .
17  RUN cmake -B build -DGGML_NATIVE=OFF -DGGML_VULKAN=1 -DLLAMA_CURL=1 && \
18      cmake --build build --config Release --target llama-server
19  
20  # Clean up
21  WORKDIR /
22  RUN cp /app/build/bin/llama-server /llama-server && \
23      rm -rf /app
24  
25  ENV LC_ALL=C.utf8
26  # Must be set to 0.0.0.0 so it can listen to requests from host machine
27  ENV LLAMA_ARG_HOST=0.0.0.0
28  
29  HEALTHCHECK CMD [ "curl", "-f", "http://localhost:8080/health" ]
30  
31  ENTRYPOINT [ "/llama-server" ]