Bhavi23 commited on
Commit
60cc838
·
verified ·
1 Parent(s): 59713eb

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +19 -24
Dockerfile CHANGED
@@ -1,38 +1,33 @@
 
1
  FROM python:3.9-slim
2
 
3
- # Create a non-root user
4
- RUN useradd --create-home --shell /bin/bash app
5
- USER app
6
- WORKDIR /home/app
7
 
8
- # Install system dependencies (switch back to root temporarily)
9
- USER root
10
  RUN apt-get update && apt-get install -y \
11
  gcc \
12
  g++ \
13
  && rm -rf /var/lib/apt/lists/*
14
 
15
- # Switch back to app user
16
- USER app
17
 
18
- # Copy requirements first for better Docker caching
19
- COPY --chown=app:app requirements.txt .
20
- RUN pip install --user --no-cache-dir -r requirements.txt
21
 
22
- # Copy your application files
23
- COPY --chown=app:app . .
24
 
25
- # Create .streamlit directory with proper permissions
26
- RUN mkdir -p /home/app/.streamlit
 
27
 
28
- # Expose the port that Hugging Face Spaces expects
29
- EXPOSE 7860
30
 
31
- # Set environment variables for Streamlit
32
- ENV PATH="/home/app/.local/bin:$PATH"
33
- ENV STREAMLIT_SERVER_HEADLESS=true
34
- ENV STREAMLIT_SERVER_FILE_WATCHER_TYPE=none
35
- ENV STREAMLIT_BROWSER_GATHER_USAGE_STATS=false
36
 
37
- # Run Streamlit on port 7860 (required for HF Spaces)
38
- CMD ["streamlit", "run", "app.py", "--server.port=7860", "--server.address=0.0.0.0"]
 
1
+ # Use Python 3.9 slim image
2
  FROM python:3.9-slim
3
 
4
+ # Set working directory
5
+ WORKDIR /app
 
 
6
 
7
+ # Install system dependencies
 
8
  RUN apt-get update && apt-get install -y \
9
  gcc \
10
  g++ \
11
  && rm -rf /var/lib/apt/lists/*
12
 
13
+ # Copy requirements first for better caching
14
+ COPY requirements.txt .
15
 
16
+ # Install Python dependencies
17
+ RUN pip install --no-cache-dir -r requirements.txt
 
18
 
19
+ # Copy application files
20
+ COPY . .
21
 
22
+ # Create a non-root user
23
+ RUN useradd -m -u 1000 streamlit && chown -R streamlit:streamlit /app
24
+ USER streamlit
25
 
26
+ # Expose port
27
+ EXPOSE 8501
28
 
29
+ # Health check
30
+ HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health
 
 
 
31
 
32
+ # Run the application
33
+ CMD ["streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0", "--server.headless=true"]