Ksjsjjdj commited on
Commit
819ad30
·
verified ·
1 Parent(s): 3dcb100

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +62 -61
Dockerfile CHANGED
@@ -1,62 +1,63 @@
1
- FROM node:20-alpine AS FrontendBuilder
2
-
3
- RUN apk update && apk upgrade && \
4
- apk add --no-cache bash git openssh curl rust cargo
5
-
6
- RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
7
- RUN npm install -g pnpm
8
-
9
- ADD https://api.github.com/repos/SolomonLeon/web-rwkv-realweb/git/refs/heads/ version_1.json
10
-
11
- WORKDIR /app
12
- RUN git clone https://github.com/SolomonLeon/web-rwkv-realweb.git /app
13
-
14
- WORKDIR /app/web-rwkv-wasm
15
- RUN ["cargo", "install", "wasm-pack", "--locked"]
16
-
17
- WORKDIR /app
18
- ENV PATH=/root/.cargo/bin:$PATH
19
- RUN pnpm install
20
- RUN if [ "$MODELSCOPE_ENVIRONMENT" = "studio" ]; then \
21
- pnpm run build --mode target-rwkv-modelscope-space; \
22
- else \
23
- pnpm run build --mode target-rwkv-hf-space; \
24
- fi
25
-
26
- FROM nvidia/cuda:12.4.0-devel-ubuntu22.04 AS Backend
27
-
28
- RUN <<EOF
29
- apt update
30
- apt install --no-install-recommends -y \
31
- build-essential \
32
- git \
33
- cuda-nvcc-12-4 \
34
- cuda-cudart-dev-12-4 \
35
- python3-dev \
36
- python3-pip \
37
- libpython3.10-dev
38
- apt clean && rm -rf /var/lib/apt/lists/*
39
- EOF
40
-
41
-
42
- COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
43
-
44
- COPY . .
45
-
46
- RUN useradd -m -u 1000 user
47
- USER user
48
-
49
- ENV HOME=/home/user \
50
- PATH=/usr/local/cuda/bin:/home/user/.local/bin:$PATH \
51
- LD_LIBRARY_PATH="/usr/local/cuda/lib64:${LD_LIBRARY_PATH}" \
52
- CXX=/usr/bin/g++ \
53
- TORCH_CUDA_ARCH_LIST="7.5"
54
- WORKDIR $HOME/app
55
-
56
- COPY --chown=user . $HOME/app
57
-
58
- COPY --chown=user --from=FrontendBuilder /app/dist $HOME/app/dist-frontend
59
-
60
- RUN uv sync --frozen --extra cu124
61
-
 
62
  CMD ["sh", "-c", "if [ \"$MODELSCOPE_ENVIRONMENT\" = \"studio\" ]; then CONFIG_FILE=\"./config.production-modelscope.yaml\"; else CONFIG_FILE=\"./config.production.yaml\"; fi; uv run --offline --frozen app.py --config_file \"$CONFIG_FILE\""]
 
1
+ FROM node:20-alpine AS FrontendBuilder
2
+
3
+ RUN apk update && apk upgrade && \
4
+ apk add --no-cache bash git openssh curl rust cargo
5
+
6
+ RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
7
+ RUN npm install -g pnpm
8
+
9
+ ADD https://api.github.com/repos/SolomonLeon/web-rwkv-realweb/git/refs/heads/ version_1.json
10
+
11
+ WORKDIR /app
12
+ RUN git clone https://github.com/SolomonLeon/web-rwkv-realweb.git /app
13
+
14
+ WORKDIR /app/web-rwkv-wasm
15
+ RUN ["cargo", "install", "wasm-pack", "--locked"]
16
+
17
+ WORKDIR /app
18
+ ENV PATH=/root/.cargo/bin:$PATH
19
+ RUN pnpm install
20
+ RUN if [ "$MODELSCOPE_ENVIRONMENT" = "studio" ]; then \
21
+ pnpm run build --mode target-rwkv-modelscope-space; \
22
+ else \
23
+ pnpm run build --mode target-rwkv-hf-space; \
24
+ fi
25
+
26
+ FROM nvidia/cuda:12.4.0-devel-ubuntu22.04 AS Backend
27
+
28
+ RUN <<EOF
29
+ apt update
30
+ apt install --no-install-recommends -y \
31
+ build-essential \
32
+ git \
33
+ cuda-nvcc-12-4 \
34
+ cuda-cudart-dev-12-4 \
35
+ python3-dev \
36
+ python3-pip \
37
+ libpython3.10-dev
38
+ apt clean && rm -rf /var/lib/apt/lists/*
39
+ EOF
40
+
41
+ COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
42
+
43
+ COPY . .
44
+
45
+ RUN useradd -m -u 1000 user
46
+ USER user
47
+
48
+ ENV HOME=/home/user \
49
+ PATH=/usr/local/cuda/bin:/home/user/.local/bin:$PATH \
50
+ LD_LIBRARY_PATH="/usr/local/cuda/lib64:${LD_LIBRARY_PATH}" \
51
+ CXX=/usr/bin/g++ \
52
+ TORCH_CUDA_ARCH_LIST="7.5"
53
+ WORKDIR $HOME/app
54
+
55
+ COPY --chown=user . $HOME/app
56
+
57
+ COPY --chown=user --from=FrontendBuilder /app/dist $HOME/app/dist-frontend
58
+
59
+ RUN uv sync --frozen --extra cu124
60
+
61
+ RUN uv pip install faker duckduckgo-search requests
62
+
63
  CMD ["sh", "-c", "if [ \"$MODELSCOPE_ENVIRONMENT\" = \"studio\" ]; then CONFIG_FILE=\"./config.production-modelscope.yaml\"; else CONFIG_FILE=\"./config.production.yaml\"; fi; uv run --offline --frozen app.py --config_file \"$CONFIG_FILE\""]