mgbam commited on
Commit
4db62cc
·
verified ·
1 Parent(s): 1302d08

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +10 -44
Dockerfile CHANGED
@@ -1,53 +1,19 @@
1
- ############################################################
2
- # 1 ─ Base image & build‑tools
3
- ############################################################
4
  FROM python:3.10-slim
5
 
6
- RUN apt-get update && \
7
- apt-get install -y --no-install-recommends build-essential curl && \
8
- rm -rf /var/lib/apt/lists/*
9
-
10
  WORKDIR /app
11
 
12
- ############################################################
13
- # 2 ─ Copy dependency manifests
14
- ############################################################
15
- # requirements.txt must already live at repo root
16
  COPY requirements.txt .
 
17
 
18
- # Create a constraints file **inside** the image so the build
19
- # never fails when it’s missing in the repo.
20
- # These pins guarantee spaCy/scispaCy keep working with NumPy.
21
- RUN printf 'numpy==1.23.5\nscipy<1.11\nspacy<3.5\n' > /tmp/constraints.txt
22
-
23
- ############################################################
24
- # 3 ─ Install Python dependencies deterministically
25
- ############################################################
26
- # First pass obeys the constraints file
27
- RUN pip install --no-cache-dir -r requirements.txt -c /tmp/constraints.txt
28
-
29
- # Belt‑and‑braces: re‑install NumPy & SciPy pins in case
30
- # a future transitive dep overrides them.
31
- RUN pip install --no-cache-dir --force-reinstall "numpy==1.23.5" "scipy<1.11"
32
-
33
- ############################################################
34
- # 4 ─ Copy application source code
35
- ############################################################
36
- COPY . /app
37
 
38
- ############################################################
39
- # 5 ─ Validate wheels & fetch minimal spaCy model
40
- ############################################################
41
- RUN python -m spacy validate && \
42
- python -m spacy download en_core_web_sm
43
 
44
- ############################################################
45
- # 6 ─ Expose the correct port & start Streamlit
46
- ############################################################
47
- ENV PORT=7860
48
- EXPOSE 7860
49
 
50
- CMD streamlit run app.py \
51
- --server.headless=true \
52
- --server.address=0.0.0.0 \
53
- --server.port=$PORT
 
 
 
 
1
  FROM python:3.10-slim
2
 
 
 
 
 
3
  WORKDIR /app
4
 
5
+ # Copy requirements and constraints files
 
 
 
6
  COPY requirements.txt .
7
+ COPY constraints.txt .
8
 
9
+ # Install dependencies
10
+ RUN pip install --no-cache-dir -r requirements.txt -c constraints.txt
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
 
12
+ # Copy the rest of the application
13
+ COPY . .
 
 
 
14
 
15
+ # Expose the port Streamlit runs on
16
+ EXPOSE 8501
 
 
 
17
 
18
+ # Set the entry point to run the Streamlit app
19
+ CMD ["streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0"]