File size: 1,521 Bytes
fbca94e
3793f15
fda0968
011a5bb
3793f15
96dfb3e
b6e426f
7af9b4b
5f83ec8
0d086e2
 
9087afa
109a0c8
011a5bb
 
adb6ad5
011a5bb
6021e98
9b9e15b
 
adb6ad5
e56da81
fbca94e
 
 
 
 
235bbc4
e56da81
 
 
 
 
fbca94e
 
 
1b68e82
109a0c8
 
 
 
 
 
 
 
e56da81
 
 
9b15eee
 
109a0c8
 
 
adb6ad5
fbca94e
109a0c8
b0dbba9
 
cb56db7
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
FROM node:20-alpine AS FrontendBuilder

RUN apk update && apk upgrade && \
    apk add --no-cache bash git openssh curl rust cargo

RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
RUN npm install -g pnpm

ADD https://api.github.com/repos/SolomonLeon/web-rwkv-realweb/git/refs/heads/ version_1.json

WORKDIR /app
RUN git clone https://github.com/SolomonLeon/web-rwkv-realweb.git /app

WORKDIR /app/web-rwkv-wasm
RUN ["cargo", "install", "wasm-pack"]

WORKDIR /app
ENV PATH=/root/.cargo/bin:$PATH
RUN pnpm install
RUN pnpm run build --mode target-rwkv-hf-space

FROM nvidia/cuda:12.4.0-devel-ubuntu22.04 AS Backend

RUN <<EOF
apt update
apt install --no-install-recommends -y \
    build-essential \
    git \
    cuda-nvcc-12-4 \
    cuda-cudart-dev-12-4 \
    python3-dev \
    python3-pip \
    libpython3.10-dev
apt clean && rm -rf /var/lib/apt/lists/*
EOF


COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/

COPY . .

RUN useradd -m -u 1000 user
USER user

ENV HOME=/home/user \
    PATH=/usr/local/cuda/bin:/home/user/.local/bin:$PATH \
    LD_LIBRARY_PATH="/usr/local/cuda/lib64:${LD_LIBRARY_PATH}" \
    CXX=/usr/bin/g++ \
    TORCH_CUDA_ARCH_LIST="7.5" \
    HF_HOME="/data/.huggingface"  
WORKDIR $HOME/app

COPY --chown=user . $HOME/app

COPY --chown=user --from=FrontendBuilder /app/dist $HOME/app/dist-frontend

RUN uv sync --frozen --extra cu124

CMD ["uv","run","app.py","--config_file","./config.production.yaml"]