File size: 1,000 Bytes
b6c044b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
FROM python:3.10.14-bookworm

ARG USER_UID=10002
ARG USER_GID=$USER_UID
ARG USERNAME=modelapi

# Combined system setup in single layer
RUN groupadd --gid $USER_GID $USERNAME \
    && useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \
    && mkdir -p /modelapi /home/$USERNAME/.modelapi \
    && chown -R $USER_UID:$USER_GID /modelapi /home/$USERNAME \
    && chmod -R 755 /modelapi /home/$USERNAME

# Environment variables
ENV CUDA_HOME=/usr/local/cuda-12.6

ENV PATH="/modelapi/.venv/bin:$PATH"

# Install uv (as root first)
RUN pip install --no-cache-dir uv

# Copy only necessary files (pyproject.toml first for better caching)
COPY pyproject.toml /modelapi/
COPY app /modelapi/app
COPY sgmse /modelapi/sgmse

# Install dependencies with uv
USER $USERNAME
RUN python -m uv venv /modelapi/.venv \
    && . /modelapi/.venv/bin/activate \
    && uv pip install --no-cache-dir -e /modelapi

EXPOSE 6500
CMD ["/bin/bash", "-c", "source /modelapi/.venv/bin/activate && python3 /modelapi/app/run.py"]