SmartHeal commited on
Commit
6972bfe
·
verified ·
1 Parent(s): 904b28b

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +17 -13
Dockerfile CHANGED
@@ -5,10 +5,9 @@ ENV PYTHONDONTWRITEBYTECODE=1 \
5
  PIP_NO_CACHE_DIR=1 \
6
  STREAMLIT_BROWSER_GATHER_USAGE_STATS=false \
7
  HOME=/app \
8
- # where your app will save uploaded files
9
- UPLOAD_DIR=/app/uploads \
10
- # ensure temp files (e.g., file_uploader buffers) are writable
11
- TMPDIR=/app/tmp
12
 
13
  WORKDIR /app
14
 
@@ -25,20 +24,25 @@ RUN pip install --upgrade pip \
25
  # App source
26
  COPY src/ ./src/
27
 
28
- # Create writable dirs for Streamlit & uploads
29
- RUN mkdir -p /app/.streamlit /app/uploads /app/tmp
30
 
31
- # (Optional) run as non-root for security
32
- # RUN useradd -m -d /app appuser && chown -R appuser:appuser /app
33
- # USER appuser
 
34
 
35
- # Persist uploads across restarts (host can mount this)
36
- VOLUME ["/app/uploads"]
 
37
 
38
  EXPOSE 8501
39
 
40
  # Healthcheck
41
  HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health || exit 1
42
 
43
- # Entrypoint
44
- ENTRYPOINT ["streamlit", "run", "src/streamlit_app.py", "--server.port=8501", "--server.address=0.0.0.0"]
 
 
 
 
5
  PIP_NO_CACHE_DIR=1 \
6
  STREAMLIT_BROWSER_GATHER_USAGE_STATS=false \
7
  HOME=/app \
8
+ # 🔐 force writable paths on HF Spaces
9
+ UPLOAD_DIR=/data/uploads \
10
+ TMPDIR=/data/tmp
 
11
 
12
  WORKDIR /app
13
 
 
24
  # App source
25
  COPY src/ ./src/
26
 
27
+ # Streamlit config dir (lives in image layer, ok)
28
+ RUN mkdir -p /app/.streamlit
29
 
30
+ # Create writable persistent dirs and grant permissions
31
+ # /data is the only writable volume on Hugging Face Spaces.
32
+ RUN mkdir -p /data/uploads /data/tmp \
33
+ && chmod -R 777 /data
34
 
35
+ # (Optional) non-root if you uncomment, make sure /data is owned or world-writable
36
+ # RUN useradd -m -d /app appuser && chown -R appuser:appuser /app /data
37
+ # USER appuser
38
 
39
  EXPOSE 8501
40
 
41
  # Healthcheck
42
  HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health || exit 1
43
 
44
+ # 🚀 Start Streamlit with flags that avoid proxy/XSRF issues on Spaces
45
+ ENTRYPOINT ["streamlit", "run", "src/streamlit_app.py",
46
+ "--server.port=8501", "--server.address=0.0.0.0",
47
+ "--server.enableXsrfProtection=false",
48
+ "--server.enableCORS=false"]