seanpedrickcase commited on
Commit
c9da99d
1 Parent(s): 0fd155c

Transferring across installed packages from build stage in Dockerfile

Browse files
Files changed (2) hide show
  1. Dockerfile +9 -5
  2. requirements_aws.txt +2 -2
Dockerfile CHANGED
@@ -5,31 +5,35 @@ FROM python:3.11.9-slim-bookworm AS builder
5
  #COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:0.8.3 /lambda-adapter /opt/extensions/lambda-adapter
6
 
7
  # Install system dependencies
8
- RUN apt-get update && apt-get install -y --no-install-recommends \
9
- && rm -rf /var/lib/apt/lists/*
10
 
11
  # Create directories (if needed for model download script)
12
- RUN mkdir -p /model/rep /model/embed
13
 
14
  WORKDIR /src
15
 
16
  # Copy requirements file and install dependencies
17
  COPY requirements_aws.txt .
18
- RUN pip install --no-cache-dir -r requirements_aws.txt
19
 
20
  # Install Gradio
21
- RUN pip install --no-cache-dir gradio==4.41.0
22
 
23
  # Download models (using your download_model.py script)
24
  COPY download_model.py /src/download_model.py
25
  RUN python /src/download_model.py
26
 
 
 
27
  # Stage 2: Final runtime image
28
  FROM python:3.11.9-slim-bookworm
29
 
30
  # Create a non-root user
31
  RUN useradd -m -u 1000 user
32
 
 
 
 
33
  # Create necessary directories and set ownership
34
  RUN mkdir -p /home/user/app/output /home/user/.cache/huggingface/hub /home/user/.cache/matplotlib /home/user/app/cache \
35
  && chown -R user:user /home/user
 
5
  #COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:0.8.3 /lambda-adapter /opt/extensions/lambda-adapter
6
 
7
  # Install system dependencies
8
+ RUN apt-get update && rm -rf /var/lib/apt/lists/*
 
9
 
10
  # Create directories (if needed for model download script)
11
+ RUN mkdir -p /model/rep /model/embed /install
12
 
13
  WORKDIR /src
14
 
15
  # Copy requirements file and install dependencies
16
  COPY requirements_aws.txt .
17
+ RUN pip install --no-cache-dir --target=/install -r requirements_aws.txt
18
 
19
  # Install Gradio
20
+ #RUN pip install --no-cache-dir --target=/install gradio==4.41.0
21
 
22
  # Download models (using your download_model.py script)
23
  COPY download_model.py /src/download_model.py
24
  RUN python /src/download_model.py
25
 
26
+ RUN rm requirements_aws.txt download_model.py
27
+
28
  # Stage 2: Final runtime image
29
  FROM python:3.11.9-slim-bookworm
30
 
31
  # Create a non-root user
32
  RUN useradd -m -u 1000 user
33
 
34
+ # Copy installed packages from builder stage
35
+ COPY --from=builder /install /usr/local/lib/python3.11/site-packages/
36
+
37
  # Create necessary directories and set ownership
38
  RUN mkdir -p /home/user/app/output /home/user/.cache/huggingface/hub /home/user/.cache/matplotlib /home/user/app/cache \
39
  && chown -R user:user /home/user
requirements_aws.txt CHANGED
@@ -1,8 +1,8 @@
1
  boto3==1.34.158
2
  bertopic==0.16.2
3
- spacy
4
  en_core_web_sm @ https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.7.1/en_core_web_sm-3.7.1.tar.gz
5
- gradio # Not specified version due to interaction with spacy - reinstall latest version after requirements.txt load
6
  pyarrow==14.0.2
7
  openpyxl==3.1.2
8
  Faker==22.2.0
 
1
  boto3==1.34.158
2
  bertopic==0.16.2
3
+ spacy==3.7.5
4
  en_core_web_sm @ https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.7.1/en_core_web_sm-3.7.1.tar.gz
5
+ gradio # Not specified version due to possible conflict with spacy
6
  pyarrow==14.0.2
7
  openpyxl==3.1.2
8
  Faker==22.2.0