nyasukun commited on
Commit
f4ff6d8
·
verified ·
1 Parent(s): 35713cb

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +67 -0
Dockerfile ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # syntax=docker/dockerfile:1
2
+
3
+ ARG CUDA_VERSION=12.8.1
4
+
5
+ FROM nvidia/cuda:${CUDA_VERSION}-devel-ubuntu24.04 AS builder
6
+
7
+ ARG LLAMA_CPP_COMMIT=04d6828b2b555ef300bae8096663c6e675afdd47
8
+
9
+ ENV DEBIAN_FRONTEND=noninteractive
10
+ ENV CC=gcc-14
11
+ ENV CXX=g++-14
12
+ ENV CUDAHOSTCXX=g++-14
13
+
14
+ RUN apt-get update && \
15
+ apt-get install -y --no-install-recommends \
16
+ build-essential \
17
+ ca-certificates \
18
+ cmake \
19
+ g++-14 \
20
+ gcc-14 \
21
+ git \
22
+ libgomp1 \
23
+ libssl-dev && \
24
+ rm -rf /var/lib/apt/lists/*
25
+
26
+ RUN git init /src && \
27
+ git -C /src remote add origin https://github.com/pwilkin/llama.cpp.git && \
28
+ git -C /src fetch --depth=1 origin "${LLAMA_CPP_COMMIT}" && \
29
+ git -C /src checkout --detach FETCH_HEAD && \
30
+ test "$(git -C /src rev-parse HEAD)" = "${LLAMA_CPP_COMMIT}"
31
+
32
+ RUN cmake -S /src -B /src/build \
33
+ -DCMAKE_BUILD_TYPE=Release \
34
+ -DCMAKE_CUDA_ARCHITECTURES=90 \
35
+ -DCMAKE_EXE_LINKER_FLAGS="-Wl,--allow-shlib-undefined" \
36
+ -DGGML_BACKEND_DL=ON \
37
+ -DGGML_CPU_ALL_VARIANTS=ON \
38
+ -DGGML_CUDA=ON \
39
+ -DGGML_NATIVE=OFF \
40
+ -DLLAMA_BUILD_TESTS=OFF && \
41
+ cmake --build /src/build \
42
+ --config Release \
43
+ --target llama-cli \
44
+ --parallel "$(nproc)"
45
+
46
+ FROM nvidia/cuda:${CUDA_VERSION}-runtime-ubuntu24.04
47
+
48
+ ENV DEBIAN_FRONTEND=noninteractive
49
+ ENV LD_LIBRARY_PATH=/app
50
+
51
+ RUN apt-get update && \
52
+ apt-get install -y --no-install-recommends \
53
+ ca-certificates \
54
+ coreutils \
55
+ libgomp1 \
56
+ libssl3t64 \
57
+ libstdc++6 \
58
+ python3-minimal && \
59
+ rm -rf /var/lib/apt/lists/*
60
+
61
+ COPY --from=builder /src/build/bin/ /app/
62
+
63
+ RUN mkdir -p /health && printf "ready\n" > /health/index.html
64
+
65
+ # Space自身を起動するときだけ使う簡易health server。
66
+ # Jobsからcommandを渡すと、このCMDは上書きされる。
67
+ CMD ["python3", "-m", "http.server", "7860", "--directory", "/health"]