mgbam commited on
Commit
1302d08
·
verified ·
1 Parent(s): 09d09d3

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +30 -24
Dockerfile CHANGED
@@ -1,44 +1,50 @@
1
- ############################
2
- # 1. BASE & OS packages #
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
- ############################
11
- # 2. COPY dependency files #
12
- ############################
13
  WORKDIR /app
 
 
 
 
 
14
  COPY requirements.txt .
15
- # ↓ holds ABI‑sensitive pins
16
- COPY constraints.txt .
17
 
18
- ############################
19
- # 3. Two‑step pip install #
20
- ############################
21
- # 3‑A – first install ONLY the constrained binary wheels
22
- RUN pip install --no-cache-dir -r requirements.txt -c constraints.txt
 
 
 
 
 
23
 
24
- # 3B – guarantee final NumPy/SciPy still match the ABI
 
25
  RUN pip install --no-cache-dir --force-reinstall "numpy==1.23.5" "scipy<1.11"
26
 
27
- ############################
28
- # 4. Copy application code #
29
- ############################
30
  COPY . /app
31
 
32
- ############################
33
- # 5. spaCy model download #
34
- ############################
35
  RUN python -m spacy validate && \
36
  python -m spacy download en_core_web_sm
37
 
38
- ############################
39
- # 6. Streamlit launch cmd #
40
- ############################
41
- ENV PORT 7860
42
  EXPOSE 7860
43
 
44
  CMD streamlit run app.py \
 
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
+ # Beltand‑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 \