File size: 1,635 Bytes
c39ce8e
 
c2bde3f
c39ce8e
 
 
 
 
 
 
e7b6ed0
c39ce8e
e7b6ed0
c39ce8e
 
 
 
3f014b3
c39ce8e
3f014b3
 
c39ce8e
3f014b3
 
 
 
 
 
 
 
 
d44cf73
3f014b3
d44cf73
3f014b3
 
 
 
 
 
d44cf73
0bc11f6
c39ce8e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
ARG UBUNTU_VERSION=22.04
# This needs to generally match the container host's environment.
ARG CUDA_VERSION=12.2.0
# Target the CUDA build image
ARG BASE_CUDA_DEV_CONTAINER=nvidia/cuda:${CUDA_VERSION}-devel-ubuntu${UBUNTU_VERSION}
# Target the CUDA runtime image
ARG BASE_CUDA_RUN_CONTAINER=nvidia/cuda:${CUDA_VERSION}-runtime-ubuntu${UBUNTU_VERSION}

FROM ${BASE_CUDA_DEV_CONTAINER} AS build

ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
    apt-get install -y build-essential git cmake libcurl4-openssl-dev curl sed wget nvidia-driver-535

WORKDIR /app


RUN apt install -y sudo && adduser --disabled-password --gecos '' docker && adduser docker sudo && echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers

USER docker
WORKDIR /home/docker

ENV NODE_VERSION=22.11.0
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
ENV NVM_DIR=/home/docker/.nvm
RUN . "$NVM_DIR/nvm.sh" && nvm install ${NODE_VERSION}
RUN . "$NVM_DIR/nvm.sh" && nvm use v${NODE_VERSION}
RUN . "$NVM_DIR/nvm.sh" && nvm alias default v${NODE_VERSION}
ENV PATH="/home/docker/.nvm/versions/node/v${NODE_VERSION}/bin/:${PATH}"
RUN node --version
RUN npm --version

RUN git clone https://github.com/ggerganov/llama.cpp --depth 1

WORKDIR /home/docker/llama.cpp
RUN sed -i 's/-lcublas /-lcublas_static /g' Makefile && \
    sed -i 's/-lcublasLt /-lcublasLt_static /g' Makefile && \
    sed -i 's/-lcudart /-lcudart_static /g' Makefile

RUN npm i -g http-server

CMD ["bash", "-c", "(http-server -p 7860 -c-1)& CUDA_DOCKER_ARCH=compute_80 GGML_CUDA=1 LLAMA_CURL=1 make llama-server -j && ldd llama-server && sleep 999999999"]