disham993 commited on
Commit
874c64a
·
verified ·
1 Parent(s): 6b62b94

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +24 -4
Dockerfile CHANGED
@@ -1,7 +1,16 @@
 
1
  FROM python:3.12-slim
2
 
 
3
  WORKDIR /app
4
 
 
 
 
 
 
 
 
5
  RUN apt-get update && apt-get install -y \
6
  build-essential \
7
  curl \
@@ -9,13 +18,24 @@ RUN apt-get update && apt-get install -y \
9
  git \
10
  && rm -rf /var/lib/apt/lists/*
11
 
12
- COPY requirements.txt ./
 
 
 
 
 
 
13
  COPY . .
14
 
15
- RUN pip3 install -r requirements.txt
 
 
16
 
 
17
  EXPOSE 8501
18
 
19
- HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health
 
20
 
21
- ENTRYPOINT ["streamlit", "run", "streamlit_app.py", "--server.port=8501", "--server.address=0.0.0.0"]
 
 
1
+ # Use Python 3.12 slim image for smaller size
2
  FROM python:3.12-slim
3
 
4
+ # Set working directory
5
  WORKDIR /app
6
 
7
+ # Set environment variables
8
+ ENV PYTHONUNBUFFERED=1
9
+ ENV PYTHONDONTWRITEBYTECODE=1
10
+ ENV STREAMLIT_SERVER_PORT=8501
11
+ ENV STREAMLIT_SERVER_ADDRESS=0.0.0.0
12
+
13
+ # Install system dependencies
14
  RUN apt-get update && apt-get install -y \
15
  build-essential \
16
  curl \
 
18
  git \
19
  && rm -rf /var/lib/apt/lists/*
20
 
21
+ # Copy requirements first for better caching
22
+ COPY requirements.txt .
23
+
24
+ # Install Python dependencies
25
+ RUN pip install --no-cache-dir -r requirements.txt
26
+
27
+ # Copy application files
28
  COPY . .
29
 
30
+ # Create a non-root user for security
31
+ RUN useradd -m -u 1000 streamlit && chown -R streamlit:streamlit /app
32
+ USER streamlit
33
 
34
+ # Expose the port Streamlit runs on
35
  EXPOSE 8501
36
 
37
+ # Health check
38
+ HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health || exit 1
39
 
40
+ # Run the Streamlit application
41
+ CMD ["streamlit", "run", "streamlit_app.py", "--server.port=8501", "--server.address=0.0.0.0"]