albertchristopher commited on
Commit
51e54e5
·
verified ·
1 Parent(s): 9ac6d5d

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +32 -11
Dockerfile CHANGED
@@ -1,20 +1,41 @@
1
- FROM python:3.13.5-slim
 
2
 
 
 
 
 
 
 
 
 
 
 
 
3
  WORKDIR /app
4
 
5
- RUN apt-get update && apt-get install -y \
6
- build-essential \
7
- curl \
8
- git \
9
- && rm -rf /var/lib/apt/lists/*
 
 
 
10
 
11
- COPY requirements.txt ./
 
 
 
 
12
  COPY src/ ./src/
13
 
14
- RUN pip3 install -r requirements.txt
 
15
 
 
16
  EXPOSE 8501
 
17
 
18
- HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health
19
-
20
- ENTRYPOINT ["streamlit", "run", "src/streamlit_app.py", "--server.port=8501", "--server.address=0.0.0.0"]
 
1
+ # Lightweight, widely supported
2
+ FROM python:3.11-slim
3
 
4
+ # Saner defaults
5
+ ENV PYTHONDONTWRITEBYTECODE=1
6
+ ENV PYTHONUNBUFFERED=1
7
+
8
+ # Create a non-root user and writable dirs
9
+ ENV HOME=/home/user
10
+ RUN useradd -m -u 1000 user \
11
+ && mkdir -p /data ${HOME}/.streamlit \
12
+ && chown -R user:user /data ${HOME}
13
+
14
+ # Use /app as workdir
15
  WORKDIR /app
16
 
17
+ # Send ALL caches to /data (writable & persistent on Spaces)
18
+ ENV XDG_CACHE_HOME=/data/.cache
19
+ ENV HF_HOME=/data/.cache/huggingface
20
+ ENV HUGGINGFACE_HUB_CACHE=/data/.cache/huggingface
21
+ ENV TRANSFORMERS_CACHE=/data/.cache/huggingface/transformers
22
+
23
+ # Streamlit: avoid writing extra telemetry files
24
+ ENV STREAMLIT_BROWSER_GATHERUSAGESTATS=false
25
 
26
+ # Install deps
27
+ COPY requirements.txt .
28
+ RUN pip install --no-cache-dir -r requirements.txt
29
+
30
+ # Copy source
31
  COPY src/ ./src/
32
 
33
+ # Run as non-root
34
+ USER user
35
 
36
+ # Port & healthcheck expected by the Space (README uses app_port: 8501)
37
  EXPOSE 8501
38
+ HEALTHCHECK CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8501/_stcore/health')" || exit 1
39
 
40
+ # Launch Streamlit
41
+ CMD ["streamlit", "run", "src/streamlit_app.py", "--server.port=8501", "--server.address=0.0.0.0"]