banao-tech commited on
Commit
de31c0e
·
verified ·
1 Parent(s): d2279cc

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +23 -21
Dockerfile CHANGED
@@ -1,27 +1,29 @@
1
- # Use an appropriate base image (you can adjust this as per your requirements)
2
- FROM python:3.10
3
 
4
- # Switch to root user
5
- USER root
6
 
7
- # Install system dependencies
8
- RUN chmod 1777 /tmp \
9
- && apt update -q && apt install -y ca-certificates wget libgl1 \
10
- && wget -qO /tmp/cuda-keyring.deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb \
11
- && dpkg -i /tmp/cuda-keyring.deb && apt update -q \
12
- && apt install -y --no-install-recommends libcudnn8 libcublas-12-2
 
13
 
14
- # Copy the requirements.txt file into the container
15
- COPY requirements.txt requirements.txt
16
-
17
- # Install Python dependencies from requirements.txt
18
  RUN pip install --no-cache-dir -r requirements.txt
19
 
20
- # Copy the application code
21
- COPY main.py main.py
22
- COPY utils.py utils.py
23
- # Run Python script to check for errors before starting FastAPI
24
- RUN python main.py
 
 
 
25
 
26
- # Start FastAPI server
27
- CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]
 
1
+ # Use NVIDIA CUDA base image with Ubuntu 22.04, CUDA 12.2, and cuDNN 8
2
+ FROM nvidia/cuda:12.2.2-cudnn8-runtime-ubuntu22.04
3
 
4
+ # Set Python to run in unbuffered mode for better logging
5
+ ENV PYTHONUNBUFFERED=1
6
 
7
+ # Install Python 3.10, pip, and system dependencies in a single layer
8
+ RUN apt-get update && apt-get install -y --no-install-recommends \
9
+ python3.10 \
10
+ python3-pip \
11
+ libgl1 \
12
+ && ln -s /usr/bin/python3.10 /usr/bin/python \
13
+ && rm -rf /var/lib/apt/lists/*
14
 
15
+ # Copy and install Python requirements
16
+ COPY requirements.txt .
 
 
17
  RUN pip install --no-cache-dir -r requirements.txt
18
 
19
+ # Copy application code
20
+ COPY main.py utils.py ./
21
+
22
+ # Verify the application can be imported without errors
23
+ RUN python -c "from main import app"
24
+
25
+ # Expose the application port
26
+ EXPOSE 7860
27
 
28
+ # Start the FastAPI server
29
+ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]