DuyTa commited on
Commit
31925ef
·
verified ·
1 Parent(s): d75b1ca

Update pipelines/dockerfile

Browse files
Files changed (1) hide show
  1. pipelines/dockerfile +28 -15
pipelines/dockerfile CHANGED
@@ -1,37 +1,50 @@
1
- # Use Python 3.10-slim image
2
- FROM python:3.11-slim-bookworm AS base
3
 
4
- # Use args
5
- ARG USE_CUDA
6
- ARG USE_CUDA_VER
7
 
8
- ## Basis ##
9
  ENV ENV=prod \
10
  PORT=9099 \
11
- # pass build args to the build
12
  USE_CUDA_DOCKER=${USE_CUDA} \
13
  USE_CUDA_DOCKER_VER=${USE_CUDA_VER}
14
 
15
- # Install GCC and build tools
16
  RUN apt-get update && \
17
- apt-get install -y gcc build-essential curl git pkg-config libicu-dev && \
 
18
  apt-get clean && \
19
  rm -rf /var/lib/apt/lists/*
20
 
 
 
 
 
 
 
 
 
21
  WORKDIR /app
22
 
 
23
  COPY ./bm25s ./bm25s
24
- RUN pip3 install ./bm25s
25
-
26
 
 
27
  COPY ./requirements.txt .
28
- RUN pip3 install uv && \
 
 
29
  if [ "$USE_CUDA" = "true" ]; then \
30
- pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/$USE_CUDA_DOCKER_VER --no-cache-dir; \
31
  else \
32
- pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu --no-cache-dir; \
33
  fi
34
- RUN uv pip install --system -r requirements.txt --no-cache-dir
 
 
35
 
36
  # Copy the application code
37
  COPY . .
 
1
+ # Use NVIDIA CUDA 12.0, cuDNN 8, and Ubuntu 22.04 as the base image
2
+ FROM nvidia/cuda:12.0.0-cudnn8-runtime-ubuntu22.04 AS base
3
 
4
+ # Use arguments to make CUDA version and GPU usage configurable
5
+ ARG USE_CUDA=true
6
+ ARG USE_CUDA_VER=cu120
7
 
8
+ ## Basis Environment ##
9
  ENV ENV=prod \
10
  PORT=9099 \
 
11
  USE_CUDA_DOCKER=${USE_CUDA} \
12
  USE_CUDA_DOCKER_VER=${USE_CUDA_VER}
13
 
14
+ # Install system dependencies including Python 3.11
15
  RUN apt-get update && \
16
+ apt-get install -y \
17
+ python3.11 python3.11-venv python3-pip gcc build-essential curl git pkg-config libicu-dev && \
18
  apt-get clean && \
19
  rm -rf /var/lib/apt/lists/*
20
 
21
+ # Set Python 3.11 as default and install pip for Python 3.11
22
+ RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1 && \
23
+ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && \
24
+ python3.11 get-pip.py && \
25
+ update-alternatives --install /usr/bin/pip3 pip3 /usr/local/bin/pip3.11 1 && \
26
+ rm get-pip.py
27
+
28
+ # Work directory
29
  WORKDIR /app
30
 
31
+ # Copy and install bm25s module
32
  COPY ./bm25s ./bm25s
33
+ RUN pip install ./bm25s
 
34
 
35
+ # Copy the requirements file
36
  COPY ./requirements.txt .
37
+
38
+ # Install Python dependencies, using CUDA or CPU torch based on build arguments
39
+ RUN pip install uv && \
40
  if [ "$USE_CUDA" = "true" ]; then \
41
+ pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/${USE_CUDA_DOCKER_VER} --no-cache-dir; \
42
  else \
43
+ pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu --no-cache-dir; \
44
  fi
45
+
46
+ # Install other Python dependencies
47
+ RUN pip install --system -r requirements.txt --no-cache-dir
48
 
49
  # Copy the application code
50
  COPY . .