johnbridges commited on
Commit
1508bf0
·
verified ·
1 Parent(s): 3197bd6

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +18 -18
Dockerfile CHANGED
@@ -1,12 +1,10 @@
1
  # syntax=docker/dockerfile:1.4
2
 
3
- # Use the official Debian 13 base image
4
  FROM debian:13
5
 
6
- # Avoid interactive prompts during package installation
7
  ENV DEBIAN_FRONTEND=noninteractive
8
 
9
- # Install system dependencies
10
  RUN apt-get update && \
11
  apt-get install -y \
12
  build-essential \
@@ -27,7 +25,6 @@ RUN useradd -m user && \
27
  mkdir -p /home/user/code && \
28
  chown -R user:user /home/user
29
 
30
- # Switch to non-root user
31
  USER user
32
  WORKDIR /home/user
33
 
@@ -38,13 +35,15 @@ RUN mkdir -p /home/user/code/models && \
38
  https://huggingface.co/Mungert/Qwen3.5-2B-GGUF/resolve/main/Qwen3.5-2B-q6_k_m.gguf \
39
  -O /home/user/code/models/Qwen3.5-2B-q6_k_m.gguf
40
 
41
- # Clone and build OpenBLAS
42
- RUN git clone https://github.com/OpenMathLib/OpenBLAS.git /home/user/code/models/OpenBLAS && \
 
 
43
  make -C /home/user/code/models/OpenBLAS -j2 \
44
  > /home/user/code/models/OpenBLAS/build.log 2>&1 || \
45
  (tail -20 /home/user/code/models/OpenBLAS/build.log && false)
46
 
47
- # Switch to root for installation
48
  USER root
49
 
50
  RUN make -C /home/user/code/models/OpenBLAS install \
@@ -52,12 +51,15 @@ RUN make -C /home/user/code/models/OpenBLAS install \
52
  (tail -20 /home/user/code/models/OpenBLAS/install.log && false) && \
53
  cp /opt/OpenBLAS/lib/libopenblas* /usr/local/lib/
54
 
55
- # Switch back to non-root user
56
  USER user
57
 
58
- # Clone llama.cpp and checkout specific commit
59
- RUN git clone https://github.com/ggerganov/llama.cpp /home/user/code/models/llama.cpp && \
60
- git -C /home/user/code/models/llama.cpp checkout 5d14e5d
 
 
 
 
61
 
62
  # Install .NET 10
63
  RUN wget https://dot.net/v1/dotnet-install.sh \
@@ -69,7 +71,7 @@ RUN wget https://dot.net/v1/dotnet-install.sh \
69
  ENV DOTNET_ROOT=/home/user/.dotnet
70
  ENV PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
71
 
72
- # Verify installation
73
  RUN whoami && dotnet --version
74
 
75
  # Clone private repositories
@@ -109,20 +111,19 @@ COPY --chown=user:user appsettings.json \
109
  COPY --chown=user:user index.html \
110
  /home/user/code/app/wwwroot/index.html
111
 
112
- # Working directory for model-related tasks
113
  WORKDIR /home/user/code/models
114
 
115
- # Expose Hugging Face Spaces port
116
  EXPOSE 7860
117
 
118
- # Switch to project directory
119
  WORKDIR /home/user/code/NetworkMonitorLLM
120
 
121
- # Restore and build .NET project
122
  RUN dotnet restore && \
123
  dotnet build -c Release
124
 
125
- # Copy published files into app directory and clean up sources
126
  RUN cp -r /home/user/code/NetworkMonitorLLM/bin/Release/net10.0/* \
127
  /home/user/code/app/ && \
128
  rm -rf \
@@ -133,5 +134,4 @@ RUN cp -r /home/user/code/NetworkMonitorLLM/bin/Release/net10.0/* \
133
  # Final runtime directory
134
  WORKDIR /home/user/code/app
135
 
136
- # Start application
137
  CMD ["dotnet", "NetworkMonitorLLM.dll", "--urls", "http://0.0.0.0:7860"]
 
1
  # syntax=docker/dockerfile:1.4
2
 
 
3
  FROM debian:13
4
 
 
5
  ENV DEBIAN_FRONTEND=noninteractive
6
 
7
+ # Install dependencies
8
  RUN apt-get update && \
9
  apt-get install -y \
10
  build-essential \
 
25
  mkdir -p /home/user/code && \
26
  chown -R user:user /home/user
27
 
 
28
  USER user
29
  WORKDIR /home/user
30
 
 
35
  https://huggingface.co/Mungert/Qwen3.5-2B-GGUF/resolve/main/Qwen3.5-2B-q6_k_m.gguf \
36
  -O /home/user/code/models/Qwen3.5-2B-q6_k_m.gguf
37
 
38
+ # Shallow clone and build OpenBLAS
39
+ RUN git clone --depth 1 \
40
+ https://github.com/OpenMathLib/OpenBLAS.git \
41
+ /home/user/code/models/OpenBLAS && \
42
  make -C /home/user/code/models/OpenBLAS -j2 \
43
  > /home/user/code/models/OpenBLAS/build.log 2>&1 || \
44
  (tail -20 /home/user/code/models/OpenBLAS/build.log && false)
45
 
46
+ # Install OpenBLAS as root
47
  USER root
48
 
49
  RUN make -C /home/user/code/models/OpenBLAS install \
 
51
  (tail -20 /home/user/code/models/OpenBLAS/install.log && false) && \
52
  cp /opt/OpenBLAS/lib/libopenblas* /usr/local/lib/
53
 
 
54
  USER user
55
 
56
+ # Fetch only the required llama.cpp commit
57
+ RUN mkdir -p /home/user/code/models/llama.cpp && \
58
+ git -C /home/user/code/models/llama.cpp init && \
59
+ git -C /home/user/code/models/llama.cpp remote add origin \
60
+ https://github.com/ggerganov/llama.cpp && \
61
+ git -C /home/user/code/models/llama.cpp fetch --depth 1 origin 5d14e5d && \
62
+ git -C /home/user/code/models/llama.cpp checkout FETCH_HEAD
63
 
64
  # Install .NET 10
65
  RUN wget https://dot.net/v1/dotnet-install.sh \
 
71
  ENV DOTNET_ROOT=/home/user/.dotnet
72
  ENV PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
73
 
74
+ # Verify .NET installation
75
  RUN whoami && dotnet --version
76
 
77
  # Clone private repositories
 
111
  COPY --chown=user:user index.html \
112
  /home/user/code/app/wwwroot/index.html
113
 
114
+ # Working directory for model tasks
115
  WORKDIR /home/user/code/models
116
 
117
+ # Hugging Face Spaces port
118
  EXPOSE 7860
119
 
120
+ # Build .NET project
121
  WORKDIR /home/user/code/NetworkMonitorLLM
122
 
 
123
  RUN dotnet restore && \
124
  dotnet build -c Release
125
 
126
+ # Copy runtime files and remove sources
127
  RUN cp -r /home/user/code/NetworkMonitorLLM/bin/Release/net10.0/* \
128
  /home/user/code/app/ && \
129
  rm -rf \
 
134
  # Final runtime directory
135
  WORKDIR /home/user/code/app
136
 
 
137
  CMD ["dotnet", "NetworkMonitorLLM.dll", "--urls", "http://0.0.0.0:7860"]