| FROM nvidia/cuda:12.5.1-cudnn-runtime-ubuntu24.04 | |
| ENV PYTHONDONTWRITEBYTECODE="1" \ | |
| PYTHONUNBUFFERED="1" \ | |
| DEBIAN_FRONTEND="noninteractive" | |
| # Install system dependencies | |
| RUN apt-get update && \ | |
| apt-get install -y --no-install-recommends \ | |
| python3-pip \ | |
| python-is-python3 && \ | |
| apt-get clean && \ | |
| rm -rf /var/lib/apt/lists/* | |
| # hadolint ignore=DL3013 | |
| RUN python3 -m pip install --no-cache-dir --upgrade pip setuptools wheel | |
| WORKDIR /app/ | |
| # Download models during build instead of copying from local | |
| COPY scripts/model_download.bash /tmp/model_download.bash | |
| RUN python3 -m pip install --no-cache-dir huggingface-hub && \ | |
| bash /tmp/model_download.bash && \ | |
| rm /tmp/model_download.bash | |
| # Install CPU requirements | |
| COPY requirements.cpu.txt ./ | |
| RUN python3 -m pip install --no-cache-dir -r ./requirements.cpu.txt | |
| # Install GPU PyTorch requirements | |
| COPY requirements.torch.gpu.txt ./ | |
| RUN python3 -m pip install --no-cache-dir -r ./requirements.torch.gpu.txt | |
| COPY app ./app | |
| COPY main.py ./ | |
| EXPOSE 8000 | |
| ENTRYPOINT ["python3", "-m", "uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"] | |