kedar432 commited on
Commit
ac834d0
·
1 Parent(s): 3816ab6

update caching

Browse files
Files changed (1) hide show
  1. Dockerfile +17 -14
Dockerfile CHANGED
@@ -7,24 +7,27 @@ RUN apt-get update && \
7
  apt-get clean && \
8
  rm -rf /var/lib/apt/lists/*
9
 
10
- # Create a non-root user
11
- RUN adduser --disabled-password --gecos '' appuser && \
12
- mkdir -p /app/.streamlit /app/.cache /app/logs && \
13
- chown -R appuser:appuser /app
14
 
15
- # Switch to non-root user
16
- USER appuser
17
 
18
- # Copy source files
19
- COPY --chown=appuser:appuser . .
20
 
21
- # Set environment variable for Streamlit config
22
- ENV STREAMLIT_CONFIG_DIR=/app/.streamlit \
23
- PYTHONUNBUFFERED=1
24
 
25
- RUN pip install --no-cache-dir --upgrade pip && \
26
- pip install --no-cache-dir -r requirements.txt
 
 
 
 
 
 
27
 
28
  EXPOSE 8501
29
 
30
- CMD ["streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0"]
 
7
  apt-get clean && \
8
  rm -rf /var/lib/apt/lists/*
9
 
10
+ # Copy only requirements first for caching
11
+ COPY requirements.txt .
 
 
12
 
13
+ RUN pip install --no-cache-dir --upgrade pip && \
14
+ pip install --no-cache-dir -r requirements.txt
15
 
16
+ # Add non-root user for security
17
+ RUN useradd -ms /bin/bash appuser
18
 
19
+ # Copy application files
20
+ COPY . .
 
21
 
22
+ # Create .streamlit config dir with correct permissions
23
+ RUN mkdir -p /app/.streamlit && chown -R appuser:appuser /app
24
+
25
+ # Switch to non-root user
26
+ USER appuser
27
+
28
+ # Ensure PATH includes user-installed binaries (like streamlit)
29
+ ENV PATH=$PATH:/home/appuser/.local/bin
30
 
31
  EXPOSE 8501
32
 
33
+ CMD ["streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0"]