sathishaiuse commited on
Commit
f0de5d8
·
verified ·
1 Parent(s): 193251b

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +25 -4
Dockerfile CHANGED
@@ -1,22 +1,43 @@
1
- FROM python:3.9-slim
 
2
 
3
  ENV DEBIAN_FRONTEND=noninteractive
4
  WORKDIR /app
5
 
 
6
  RUN apt-get update && apt-get install -y --no-install-recommends \
7
- build-essential libgomp1 ca-certificates && rm -rf /var/lib/apt/lists/*
8
 
 
9
  COPY . /app
10
 
 
11
  RUN python -m pip install --upgrade pip setuptools wheel
 
 
12
  RUN pip install --no-cache-dir -r requirements.txt
13
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  RUN useradd -m -u 1000 user
15
  USER user
16
  ENV HOME=/home/user PATH=/home/user/.local/bin:$PATH
17
-
18
  WORKDIR $HOME/app
19
  RUN cp -r /app/* $HOME/app/ || true
20
 
21
  EXPOSE 8501
22
- CMD ["streamlit","run","app.py","--server.port=8501","--server.address=0.0.0.0","--server.enableXsrfProtection=false"]
 
1
+ # Dockerfile — predownload model at build time (recommended)
2
+ FROM python:3.11-slim
3
 
4
  ENV DEBIAN_FRONTEND=noninteractive
5
  WORKDIR /app
6
 
7
+ # system deps
8
  RUN apt-get update && apt-get install -y --no-install-recommends \
9
+ ca-certificates libgomp1 && rm -rf /var/lib/apt/lists/*
10
 
11
+ # copy code & requirements
12
  COPY . /app
13
 
14
+ # upgrade pip
15
  RUN python -m pip install --upgrade pip setuptools wheel
16
+
17
+ # install only Python deps first
18
  RUN pip install --no-cache-dir -r requirements.txt
19
 
20
+ # Download model from HF into /opt/model at build-time
21
+ # If repo is private, set build secret or pass HF_TOKEN as build-arg (see notes below)
22
+ ARG HF_MODEL_REPO="sathishaiuse/wellness-classifier-model"
23
+ ARG HF_MODEL_FILENAME=""
24
+ ARG HF_TOKEN=""
25
+ RUN python - <<PY
26
+ from huggingface_hub import snapshot_download
27
+ import os
28
+ repo = os.environ.get('HF_MODEL_REPO', '${HF_MODEL_REPO}')
29
+ token = os.environ.get('HF_TOKEN', '${HF_TOKEN}') or None
30
+ # snapshot_download will save the repo files into /opt/model/<repo-name>
31
+ local = snapshot_download(repo, token=token, cache_dir="/opt/model_cache")
32
+ print("Downloaded to:", local)
33
+ PY
34
+
35
+ # create unpriv user
36
  RUN useradd -m -u 1000 user
37
  USER user
38
  ENV HOME=/home/user PATH=/home/user/.local/bin:$PATH
 
39
  WORKDIR $HOME/app
40
  RUN cp -r /app/* $HOME/app/ || true
41
 
42
  EXPOSE 8501
43
+ CMD ["streamlit","run","app.py","--server.port=8501","--server.address=0.0.0.0"]